首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium Web Driver(Firefox)有时无法通过网页中的id找到元素

Selenium Web Driver(Firefox)有时无法通过网页中的id找到元素
EN

Stack Overflow用户
提问于 2013-04-02 16:51:49
回答 4查看 8K关注 0票数 2

我正在使用Fire Fox的Selenium Web Driver来自动化Python中的一个网页。

问题是,有时对于某些元素,我会得到NoSuchElementException,即使该元素具有我正在搜索的id。

我使用的是find_element_by_id(id)方法。

我的代码是

d = webdriver.Firefox()

elm5 = d.find_element_by_id("ctl00_bodyContent_tabGroupAdmin")

elm5.click()

该元素的HTML为:

代码语言:javascript
复制
<div id="ctl00_bodyContent_tabGroupAdmin" class="tab">
                <div onclick="OpenTab(3); DisableProgressBarDisplay(); return false;">
                    Group Administrators</div>
                <div class="cap_right">
                </div>
            </div>

有没有人遇到过同样的问题?请建议一些解决办法。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-02 19:10:13

我建议您必须等待元素出现。

看看这个answer about how to wait

我们有时在使用selenium时也会遇到这个问题。页面太慢了。

票数 3
EN

Stack Overflow用户

发布于 2013-04-02 19:42:04

我对Python一无所知,但是我正在使用java使用selenium Webdriver,我猜问题出在bcz,你可能没有切换到当前的框架。你可以通过检查你的html文件来检查这一点,只需上一页,你就能找到当前的帧。

在java中,我们通常以driver.switchTo().frame(driver.findElement(By.name("officePane")));的身份执行此操作。

您可以在python中查看类似的内容,希望它会对您有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-09-03 21:34:16

代码语言:javascript
复制
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

将这些代码添加到代码的开头,然后

代码语言:javascript
复制
WebDriverWait(d, 20).until(EC.presence_of_element_located((By.ID, "ctl00_bodyContent_tabGroupAdmin")))

顺便说一下,您可以查找并单击单行中的元素,如下所示:

代码语言:javascript
复制
d.find_element_by_id("ctl00_bodyContent_tabGroupAdmin").click()

祝你好运,并感谢User为我们讲授这个解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15759842

复制
相关文章

相似问题

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