Selenium操作隱藏的元素及問(wèn)題解決方案
在工作中我們會(huì)遇到一些隱藏的元素,那么selenium就會(huì)無(wú)法操作這些元素了,例如像這樣:
我試著像以前操作一樣,寫(xiě)了代碼,操作之后報(bào)錯(cuò):selenium.common.exceptions.NoSuchElementException: Message: Could not locate element with visible text: male
解決方法:
我們可以通過(guò)js來(lái)使元素可見(jiàn),代碼如下:
# document.querySelectorAll("select") 選擇所有的select。 # [1] 指定這一組標(biāo)簽里的第2個(gè)。 # style.display="block"; 修改樣式的display="block" ,表示可見(jiàn)。 js = 'document.querySelectorAll("select")[1].style.display="block";' driver.execute_script(js)
再舉一個(gè)例子,該例子是輸入框隱藏了;具體HTML如下:
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>Checkbox</title> <script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link rel="external nofollow" rel="stylesheet" /> <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> </head> <title>定位演示</title> <script> function gettext(){ var url = document.getElementById("urlAdd").value; window.location.href=url; } </script> <body> 請(qǐng)輸入網(wǎng)站:<input style="display:none" type="text" id="urlAdd" /> <button οnclick="gettext()" id= "ok" >跳轉(zhuǎn)</button> </body> </html>
python實(shí)現(xiàn)方式一:
# 1. 確定js js = "document.getElementById('urlAdd').value = 'https://baike.baidu.com/'" # 2. 執(zhí)行js driver.execute_script(js) # 點(diǎn)擊跳轉(zhuǎn) driver.find_element_by_id("ok").click() time.sleep(5)
python實(shí)現(xiàn)方法二:
# 1. 確定js js = 'document.getElementById("urlAdd").style.display="block";' # 2. 執(zhí)行js driver.execute_script(js) driver.find_element_by_id("urlAdd").send_keys("https://www.baidu.com") # 點(diǎn)擊跳轉(zhuǎn) driver.find_element_by_id("ok").click() time.sleep(5)
假如面試官問(wèn)我們?nèi)绾味ㄎ浑[藏元素以及如何操作?
回答:定位元素的話(huà),直接用普通的定位方法即可,只是在操作元素上有些差異,需要用js去進(jìn)行操作。
到此這篇關(guān)于Selenium操作隱藏的元素的文章就介紹到這了,更多相關(guān)Selenium操作隱藏的元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python常見(jiàn)工廠(chǎng)函數(shù)用法示例
這篇文章主要介紹了Python常見(jiàn)工廠(chǎng)函數(shù)用法,簡(jiǎn)單描述了工廠(chǎng)函數(shù)的功能、定義并結(jié)合具體實(shí)例形式分析了Python常見(jiàn)工廠(chǎng)函數(shù)的相關(guān)使用技巧,需要的朋友可以參考下2018-03-03python利用 pytesseract快速識(shí)別提取圖片中的文字((圖片識(shí)別)
本文介紹了tesseract的python調(diào)用,也就是pytesseract庫(kù),其中還有一些其他的內(nèi)容并沒(méi)有涉及,僅涉及到了圖片提取文字,如果你對(duì)其感興趣,可以深入探索一下,也希望能和我探討一下2022-11-11對(duì)json字符串與python字符串的不同之處詳解
今天小編就為大家分享一篇對(duì)json字符串與python字符串的不同之處詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹
這篇文章主要介紹了Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08Qt實(shí)現(xiàn)炫酷啟動(dòng)圖動(dòng)態(tài)進(jìn)度條效果
最近接到一個(gè)新需求,讓做一個(gè)動(dòng)效進(jìn)度條。剛接手這個(gè)項(xiàng)目真的不知所措,后來(lái)慢慢理清思路,問(wèn)題迎刃而解,下面小編通過(guò)本文給大家?guī)?lái)了Qt實(shí)現(xiàn)炫酷啟動(dòng)圖動(dòng)態(tài)進(jìn)度條效果,感興趣的朋友一起看看吧2021-11-11Pycharm 創(chuàng)建 Django admin 用戶(hù)名和密碼的實(shí)例
今天小編就為大家分享一篇Pycharm 創(chuàng)建 Django admin 用戶(hù)名和密碼的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05