我目前正在使用python 3.6.5,selenium版本3.14.0
如果我创建了如下所示的网络元素:
driver.execute_script("""var body = document.getElementsByTagName('body').item(0);var div = document.createElement('div');div.setAttribute('id', 'ZZZ');body.appendChild(div);""")
我无法使用以下内容:
wait.until(
expected_conditions.presence_of_element_located(
(By.ID, 'ZZZ')
)
)
我已经仔细检查过是否成功创建了该元素,但是使用selenium包提供的API(例如find_element_by_id和上面的脚本)无法找到该元素。
问题:在execute_script之后注入新元素之后,我还需要做其他事情吗?还是目前,这不可能吗?
我可以通过以下方式获取元素:
new_element = driver.execute_script('return document.getElementById("ZZZ");')
但是,如果我不能使用selenium包提供的默认API(例如find_element_by_id),这对我来说将很困难
下面的代码对我有用:
driver.get('http://www.google.com')
elem = driver.find_element_by_name("q")
driver.execute_script("var body = document.getElementsByTagName('body').item(0);var div = document.createElement('div');div.setAttribute('id', 'ZZZ');body.appendChild(div);")
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "ZZZ"))
)
driver.quit()
我试图通过xpath获取一个输入元素,但是return语句是false。 当我试图获取标签(它是输入的唯一兄弟)时,它返回true。我也尝试通过输入类型[@type=“checkbox”]获取它,但也失败了。 null
我会收到以下错误消息: el=self.driver.find_element_by_xpath(element_query)文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第393行,在find_element_by_xpath中返回self.find_element(by=by.
问题内容: 我正在尝试选择一个包含锚点的元素,但文本被埋在div内的一个段落中。这是我正在使用的HTML: 我用来尝试捕获的代码针对的是“ Smoke Sequential”文本,其内容为: 变量“服务”中包含“烟雾顺序”的位置。运行它时,出现以下错误: 任何帮助将不胜感激。 问题答案: 问题可能出在html的其余部分,您没有发布的部分。 在此示例中(我刚刚关闭了打开的标签): 我可以轻松找到该元
问题内容: 如果我使用它,它就会出现..很明显,屏幕上没有任何“找到你”的信息。我究竟做错了什么? 问题答案: 问题是您试图在元素存在之前对其进行访问。您需要等待页面完全加载。一种可能的方法是使用处理程序: 不过,大多数常见的JavaScript库都提供DOM就绪事件。这样比较好,因为也要等待所有图像。在大多数情况下,您不需要这样做。 另一种方法是将script标签放在您的-tag 之前,因为它前
我将Selenium与PHP WebDriver结合使用。我试图单击导航栏中的链接,该链接显示在HTML中,如下所示: 我正在尝试选择元素,然后单击它。但是,当我尝试使用xpath时,如下所示: 或 我得到以下错误: 没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“/*[@showpage=“cards”]”}(会话信息:chrome=70.0.3538.
我正在努力编写代码检查下载是由selenium和chrome驱动程序完成的。我的想法是 1.转到下载页面(“Chrome://下载/”) 然后尝试单击developer工具中的Ctrl+F,再次粘贴xpath。我找不到元素。为什么?检查没有框架。