首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用硒找不到元素

问使用硒找不到元素
EN

Stack Overflow用户
提问于 2018-03-19 14:03:22
回答 2查看 174关注 0票数 0

我是Selenium和HTML的新手。我正在使用Selenium WebDriver测试一个网站,但是驱动程序找不到元素。

我的代码是:

代码语言:javascript
复制
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是:

代码语言:javascript
复制
<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>

运行代码后的结果:

代码语言:javascript
复制
*raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:* 

实际上,我能看到这个元素。我是说,元素已经被加载了。我试过XPATH,但它不起作用。

EN

回答 2

Stack Overflow用户

发布于 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

票数 0
EN

Stack Overflow用户

发布于 2018-03-19 15:51:04

使用JavaScript executor单击一个元素,因为有时元素可能会被另一个元素覆盖:

代码语言: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()") 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49356704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档