簡體   English   中英

使用硒找不到元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM