Selenium操作隱藏的元素及問題解決方案
在工作中我們會遇到一些隱藏的元素,那么selenium就會無法操作這些元素了,例如像這樣:
我試著像以前操作一樣,寫了代碼,操作之后報(bào)錯(cuò):selenium.common.exceptions.NoSuchElementException: Message: Could not locate element with visible text: male
解決方法:
我們可以通過js來使元素可見,代碼如下:
# document.querySelectorAll("select") 選擇所有的select。 # [1] 指定這一組標(biāo)簽里的第2個(gè)。 # style.display="block"; 修改樣式的display="block" ,表示可見。 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> 請輸入網(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)
假如面試官問我們?nèi)绾味ㄎ浑[藏元素以及如何操作?
回答:定位元素的話,直接用普通的定位方法即可,只是在操作元素上有些差異,需要用js去進(jìn)行操作。
到此這篇關(guān)于Selenium操作隱藏的元素的文章就介紹到這了,更多相關(guān)Selenium操作隱藏的元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python利用 pytesseract快速識別提取圖片中的文字((圖片識別)
本文介紹了tesseract的python調(diào)用,也就是pytesseract庫,其中還有一些其他的內(nèi)容并沒有涉及,僅涉及到了圖片提取文字,如果你對其感興趣,可以深入探索一下,也希望能和我探討一下2022-11-11Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹
這篇文章主要介紹了Python中l(wèi)ist列表的一些進(jìn)階使用方法介紹,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08Qt實(shí)現(xiàn)炫酷啟動圖動態(tài)進(jìn)度條效果
最近接到一個(gè)新需求,讓做一個(gè)動效進(jìn)度條。剛接手這個(gè)項(xiàng)目真的不知所措,后來慢慢理清思路,問題迎刃而解,下面小編通過本文給大家?guī)砹薗t實(shí)現(xiàn)炫酷啟動圖動態(tài)進(jìn)度條效果,感興趣的朋友一起看看吧2021-11-11Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實(shí)例
今天小編就為大家分享一篇Pycharm 創(chuàng)建 Django admin 用戶名和密碼的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05