[英]Using Selenium can't find an element
我是Selenium和HTML的新手。 我正在使用Selenium WebDriver測試網站,但是驅動程序找不到元素。
我的代碼是:
browser = webdriver.Chrome()
wait = WebDriverWait(browser, 10)
data = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#search_result_former > div.re-content.search-mode-content > div.list-container > ul > li:nth-child(1) > div > div.item-footer > div > a:nth-child(1)')))
HTML是:
<div class="btn-group clear">
<a href="javascript:;" class="btn btn-operation" role="detail">詳覽</a>
<a href="javascript:;" class="btn btn-operation" role="lawState" an="CN201820052763" pn="CN207117855U">法律狀態</a>
<a href="javascript:;" class="btn btn-operation" role="proposor" _name="信陽農林學院;" _address=" 河南省信陽市羊山新區新24大街信陽農林學院;" _zipcode="464000;" _country="">申請人</a>
<a href="javascript:;" role="addAnalysis" class="btn btn-operation">+ 分析庫</a>
<a href="javascript:;" role="favorite" class="btn btn-operation">收藏</a>
<a href="javascript:;" role="translate" _id="CN201820052763.420180316XX" class="btn btn-operation btn-translate">翻譯</a>
</div>
運行代碼后的結果:
*raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:*
實際上,我可以看到該元素。 我的意思是,元素已加載。 我已經嘗試過XPATH
,但是它不起作用。
按照您共享的HTML ,可以使用以下代碼行:
通過LINK_TEXT
:
wait = WebDriverWait(browser, 10) data = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "詳覽")))
通過CSS_SELECTOR
:
wait = WebDriverWait(browser, 10) data = wait.until(EC.element_to_be_clickable((By.XPATH, "//a[@class='btn btn-operation' and contains(.,'詳覽')]")))
通過CSS_SELECTOR
:
wait = WebDriverWait(browser, 10) data = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.btn-operation[role='detail']")))
使用JavaScript執行程序單擊元素,因為有時元素可能會被另一個元素覆蓋:
driver = webdriver.Firefox()
driver.get("http://stackoverflow.com/questions/7794087/running-javascript-in-selenium-using-python")
driver.execute_script("document.getElementsByClassName('comment-user')[0].click()")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.