我知道这方面有很多问题,但似乎没有任何帮助。使用键打开一个新的选项卡或窗口,这样元素就不会过时,这并没有任何作用。不会打开新选项卡。它什么也没做。我正在抓取一个网站,主页上有一个链接列表,我需要通过点击每个链接循环,并从每个链接获取数据。在第一次迭代之后,当它回到主页面时,元素显然已经过时了。这是我第一次使用Selenium,所以我为这个天真的问题道歉,但我已经被困了好几天了,现在我迫切需要一些帮助。以下是我的原始代码:来自selenium import webdriver
#Main url with a list on links of doctors name
url = ('https://weedmaps.com/doctors/in/massachusetts')
chromedriver = 'C:/Users/Henry/Desktop/chromedriver'
driver = webdriver.Chrome(chromedriver)
#Get the URL
driver.get(url)
#The element list
elements = driver.find_elements_by_class_name('details')
#Data I need
name = []
number = []
address = []
email = []
website = []
#Loop through elements
for i in elements:
#clicks the element
i.click()
#New element once first element is clicked
popup = driver.find_element_by_class_name('no-decoration')
#Click the new element that opens a new window with the data I need
popup.click()
driver.implicitly_wait(10)
#Data I need
anchors = driver.find_elements_by_tag_name('a')
address.append(anchors[29].text)
number.append(anchors[30].text)
email.append(anchors[31].text)
website.append(anchors[35].text)
#Go back to the list and go to the next element
driver.back()
您正在执行更新DOM的操作,因此在第一次迭代中有效的元素在下一次迭代中不再有效(变得过时)。。。
而不是
elements = driver.find_elements_by_class_name('details')
for i in elements:
i.click()
尝试
elements_len = len(driver.find_elements_by_class_name('details'))
for i in range(elements_len):
driver.find_elements_by_class_name('details')[i].click()
所以我正在尝试制作一个在flickr上运行的程序,我已经准备好了所有的东西,直到cookies弹出,它打败了我。 我正在尝试切换到这个iframe,这样我就可以使用“全部接受”按钮。然而,iframe的ID是动态的,所以为了避免这个问题,我尝试以标题为目标。 但是我现在收到了这个错误消息。 我已经尝试添加了10秒的等待时间来给它加载时间,我知道错误的原因是元素不再连接到DOM,但我不知道要使用什么
我的程序抛出一条错误消息“stale element reference:element未附加到页面文档”。当我查看前面的帖子(如Python Selenium陈旧元素修复)时,我发现我没有在调用click函数后更新url。我更新了网址。然而,它并没有解决这个问题。谁能指出我哪里出错了?下面是我的代码:
问题内容: 考虑像这样的字典 例如,如何访问该词典的特定元素?例如,我想在格式化Apple的第一个元素(在我们的情况下仅是“ American”)之后打印第一个元素。 附加信息上面的数据结构是通过在python函数中解析输入文件创建的。一旦创建,它在该运行中将保持不变。 我在函数中使用此数据结构。 因此,如果文件发生更改,则下次运行此应用程序时,文件的内容将有所不同,因此此数据结构的内容将有所不同
我有这个网站:http://embed.plnkr.co/Bs5iDqtXSSnvye2ORI6k/preview 代码: 和以下规格: 这种配置: 当我运行Protractor时,会出现以下错误: StaleElementReferenceError:过时元素引用:元素未附加到页面文档(会话信息:chrome=43.0.2357.81) (驱动程序信息:chronidriver=2.15.322
我希望有一个元素引用同级,但我不确定如何在我的模式中实现它。我的简历中有以下内容。xml文件: 这意味着每位员工都将有一名主管,他也是员工,因此,如果可能的话,我希望向他们推荐。 “pid”是我在模式中创建的一种类型,它只是一个由6位数字组成的字符串。 我的简历中有以下内容。xsd文件: 它给出以下错误: 错误-cvc类型。3.1.1:元素“supervisor”是一个简单类型,因此它不能有属性,
我正在尝试从网站获取剧集链接。所以我需要进入链接,从剧集中获取信息。它在2-3集中工作,然后在底部因错误而崩溃。我试着提高睡眠时间,但还是失败了。 错误: