【发布时间】:2021-08-18 09:07:38
【问题描述】:
我写了一个 python 脚本。首先,它访问这个网站。然后点击右侧的箭头,进入新的网页收集一些数据。最后回到上一页,对下一项做同样的事情。
网页:https://register.fca.org.uk/s/search?q=capital&type=Companies
这是代码。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.wait import WebDriverWait
import time
url = 'https://register.fca.org.uk/s/search?q=capital&type=Companies'
service = Service('link to come driver')
service.start()
driver = webdriver.Remote(service.service_url)
driver.get(url)
time.sleep(12)
divs = driver.find_elements_by_xpath('//div[@class="result-card_main"]')
for d in divs:
RN = ''
companyName = ''
companyName = d.find_element_by_tag_name('h2').text
RNData = d.find_element_by_xpath('.//div[@class="result-card_figure-offset"]').text
RN = RNData.split(':')[1].strip()
d.click()
time.sleep(12)
phoneNumber = ''
phoneNumberData = driver.find_elements_by_xpath('//*[@id="who-is-this-details-content"]/div[1]/div[2]/div[2]/div/div/div[2]')
phoneNumber = phoneNumberData[0].text.split('\n')[1]
print(RN)
print(companyName)
print(phoneNumber)
driver.execute_script("history.back();")
它给了我这个错误:
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
我该如何解决这个问题?
【问题讨论】:
-
当您离开并返回时,引用变得陈旧。您想找到一种方法来迭代那些不使用元素引用的方法
-
我该怎么做?
标签: python selenium selenium-webdriver