我是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,但它不起作用。
发布于 2018-03-19 15:07:17
根据您所共享的HTML,您可以使用以下代码行:
通过LINK_TEXT的
wait.until(EC.element_to_be_clickable((By.LINK_TEXT,= WebDriverWait(browser,10) data = wait“详览”)
CSS_SELECTOR:wait = WebDriverWait(browser,10) data = wait.until(EC.element_to_be_clickable((By.XPATH,"//a@class='btn btn-WebDriverWait‘and contains(.,’详览‘)“))
CSS_SELECTOR:wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a.btn.btn-operationrole='detail'"))) =WebDriverWait(浏览器,10)数据= wait
发布于 2018-03-19 15:51:04
使用JavaScript executor单击一个元素,因为有时元素可能会被另一个元素覆盖:
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()") https://stackoverflow.com/questions/49356704
复制相似问题