import sys
import urllib2
import time
from bs4 import BeautifulSoup
from selenium import webdriver
import string
import re
reload(sys)
sys.setdefaultencoding('utf8')
baseUrl = 'https://www.breastsurgeons.org/new_layout/membership/membersearch/index.php'
driver = webdriver.Chrome('/usr/local/Cellar/chromedriver/2.36/bin/chromedriver')
driver.get(baseUrl)
time.sleep(20)
for p in range(1,282):
driver.find_element_by_xpath("//a[contains(text(),'>>')]").click()
time.sleep(2)
driver.quit()
打开baseUrl后,我手动单击同意,然后搜索要显示的医生列表。我想翻阅清单。现在,Selenium仅通过找到“
”第一次单击。之后它停止并给出以下错误。
driver.find_element_by_xpath("//a[contains(text(),'>>')]").click()
File "/Library/Python/2.7/site-packages/selenium-3.11.0-py2.7.egg/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/Library/Python/2.7/site-packages/selenium-3.11.0-py2.7.egg/selenium/webdriver/remote/webelement.py", line 628, in _execute
return self._parent.execute(command, params)
File "/Library/Python/2.7/site-packages/selenium-3.11.0-py2.7.egg/selenium/webdriver/remote/webdriver.py", line 312, in execute
self.error_handler.check_response(response)
File "/Library/Python/2.7/site-packages/selenium-3.11.0-py2.7.egg/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
错误说明了一切:
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
在for()
循环内的程序中,您将在页面上找到<a>
文本标记为 > >*的tag元素并进行调用,click()
并且由于 HTML DOM
发生更改而导致的click()
事件。当您的程序第二次迭代循环时,也许未加载标识为的 WebElement ,但是 Selenium
尝试引用以前已经 过时的 迭代中的搜索。因此,您会看到 StaleElementReferenceException 。 for()
driver.find_element_by_xpath("//a[contains(text(),'>>')]")
__
***
一种令人信服的迭代页面的方法是:
driver.find_element_by_xpath("//a[contains(text(),'>>')]").click()
可以诱导WebDriverWait在-结合expected_conditions子句设置为element_to_be_clickable为
WebElement 与特定 页码 (例如 3 , 4 , 5 ,等)是 可点击 如下:
WebDriverWait(self.driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(text(),'3')]"))).click()
问题内容: 打开baseUrl后,我手动单击同意,然后搜索要显示的医生列表。我想翻阅清单。现在,Selenium仅通过找到“ ”来第一次单击。之后它停止并给出以下错误。 问题答案: 错误说明了一切: 在循环内的程序中,您将在页面上找到文本标记为 > >*的tag元素并进行调用,并且由于 HTML DOM 发生更改而导致该事件。当您的程序第二次迭代循环时,也许未加载标识为的 WebElement ,
问题内容: 我正在尝试使用selenium和python 在该特定网站上单击以查看更多信息。这就是我测试的方式,并且出现以下错误 这是可行的: 我想念什么? 问题答案: 这是一个非常简单的运行代码段,该代码段使用XPATH查找按钮“ Se flere”。
我正试图让JQuery在按下下一个按钮时自动单击该按钮。在互联网上,我发现应该是这样的(查看JQuery部分)。但由于某种原因,它不起作用。 它们必须在同一个代码中吗? 我尝试过的:JQuery: 表单中的按钮1 HTML: 表单中的按钮2 HTML:
我遇到了一个问题 我在谷歌上搜索了这个https://www.google.com/search?q=sen做 上面的链接也是如此,使用了下面的代码,但它只返回https://www.sendo.vn/(缺少参数) 这是密码 任何解决方案,以获得完整的网址路径与硒像手动点击?
我已经用selenium编写了一个自动化测试用例来测试登录页面,应该点击忘记密码链接。浏览器打开并转到给定的url,但忘记密码链接不会自动点击,有人能告诉我的代码有什么问题吗。 基本代码 Browsers.java 数据属性 控制台: 超文本标记语言代码
这是在FF浏览器上。我有一个工具栏上带有下一个按钮的Web应用程序。我的Selenium脚本找到了按钮,并且显然在元素突出显示但下一页没有打开时单击了它。 我怎样才能进入下一页? 这是处于空闲状态的工具栏的图像: 单击元素后: 正如在另一篇文章中所建议的那样,我单击一个不可单击的元素以获得焦点,然后单击下一个按钮...但按钮突出显示,但不会转到下一页 部分内容是 我试过这个,但没有工作 编辑 在进