一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

appium+python自動(dòng)化98-非select彈出選擇框定位解決

 上海悠悠 2021-05-27

前言

遇到問題:document.getElementsByClassName(…)[0] is undefined
選擇框如果是select標(biāo)簽的,可以直接用select專用的方法去定位點(diǎn)擊操作。其它不是select選擇框的時(shí)候,那就按正常操作步驟先點(diǎn)輸入框,再點(diǎn)選項(xiàng)就行了。
可是有些選擇框就是不聽話,你會(huì)發(fā)現(xiàn)用selenium死活定位不到,這個(gè)時(shí)候只能用萬(wàn)能的js來解決了。

input選擇框

1.先看下彈出框的常見,如下這種

2.查看元素屬性,是input標(biāo)簽,并且是readonly屬性,說明不能被輸入

js調(diào)試

1.首先嘗試了selenium的定位方法,發(fā)現(xiàn)點(diǎn)輸入框是可以彈出選項(xiàng)的,只是點(diǎn)選項(xiàng)死活點(diǎn)不了。于是在瀏覽器用js去調(diào)試

先點(diǎn)輸入框,讓它彈出選項(xiàng)

元素屬性 <input class="el-input__inner" type="text" autocomplete="off" placeholder="請(qǐng)選擇" readonly="readonly">

document.getElementsByClassName('el-input__inner’)[2].click();

2.等選項(xiàng)彈出來了,再次在瀏覽器輸入js去點(diǎn)選項(xiàng)

元素屬性 <ul class="el-scrollbar__view el-select-dropdown__list" style="position: relative;">    <li class="el-select-dropdown__item hover">        <span>車贏銀行</span>

document.getElementsByClassName('hover’)[0].click();

3.于是用selenium執(zhí)行js,部分參考代碼如下

js1 = "document.getElementsByClassName('el-input__inner')[2].click();" self.driver.execute_script(js1) time.sleep(1) js2 = "document.getElementsByClassName('hover')[0].click();" self.driver.execute_script(js2)

運(yùn)行報(bào)錯(cuò):

selenium.common.exceptions.WebDriverException: Message: document.getElementsByClassName(…)[0] is undefined

看這個(gè)報(bào)錯(cuò)后反復(fù)檢查了語(yǔ)法,發(fā)現(xiàn)沒毛病,并且反復(fù)在瀏覽器調(diào)試,也沒問題,差點(diǎn)懷疑人生了?。?!后來發(fā)現(xiàn)是前面一個(gè)js執(zhí)行后失去了焦點(diǎn),導(dǎo)致第二個(gè)js找不到焦點(diǎn)了

移動(dòng)鼠標(biāo)

1.當(dāng)元素失去焦點(diǎn)后,死后定位不到,這個(gè)就好比你在瀏覽器上瀏覽小電影的時(shí)候,突然有個(gè)人發(fā)給QQ抖動(dòng)窗口,此時(shí)你想繼續(xù)瀏覽小網(wǎng)站,你需要重新點(diǎn)下網(wǎng)頁(yè),讓鼠標(biāo)聚集在網(wǎng)頁(yè)上才能操作。
解決辦法:把鼠標(biāo)重新移過去

2.使用ActionChains移動(dòng)鼠標(biāo)到需要點(diǎn)擊的元素上,參考代碼

from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time # ** 作者:上海-悠悠 QQ交流群:588402570** driver=webdriver.Firefox() # 省略中間步驟 js1 = "document.getElementsByClassName('el-input__inner')[2].click();" self.driver.execute_script(js1) time.sleep(1) el = driver.find_element_by_xpath("http://*[text()='車贏銀行']") ActionChains(self.driver).move_to_element(el).perform() js2 = "document.getElementsByClassName('hover')[0].click();" self.driver.execute_script(js2)

《python自動(dòng)化selenium+appium》8月11號(hào)開學(xué)!(2個(gè)月2000,包教會(huì))

seleniumQQ群:646645429

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    最好看的人妻中文字幕| 日本福利写真在线观看| 国产激情一区二区三区不卡| 中国少妇精品偷拍视频 | 欧美日韩国产的另类视频| 搡老熟女老女人一区二区| 黄色国产自拍在线观看| 少妇视频一区二区三区| 在线观看免费视频你懂的| 久久re6热在线视频| 粉嫩国产一区二区三区在线| 中文字幕一区二区免费| 欧美日韩亚洲精品内裤| 日韩成人免费性生活视频| 视频一区二区三区自拍偷| 亚洲欧美日韩中文字幕二欧美 | 好吊一区二区三区在线看| 亚洲国产精品一区二区毛片| 日韩欧美综合中文字幕| 91欧美激情在线视频| 国产精品激情对白一区二区| 97人妻精品免费一区二区| 欧美老太太性生活大片| 亚洲精品黄色片中文字幕| 91麻豆视频国产一区二区| 国产成人免费高潮激情电| 尹人大香蕉中文在线播放| 欧美日韩亚洲综合国产人| 在线观看免费视频你懂的| 亚洲精品中文字幕欧美| 好吊日成人免费视频公开| 激情亚洲内射一区二区三区| 空之色水之色在线播放| 91亚洲精品综合久久| 在线一区二区免费的视频| 久久成人国产欧美精品一区二区 | 日韩黄片大全免费在线看| 99久久国产精品成人观看| 国自产拍偷拍福利精品图片| 国产色一区二区三区精品视频| 亚洲一区二区三区中文久久|