【问题标题】:Python-Selenium Fetching data from previous listing webpage using selenium in pythonPython-Selenium 在 python 中使用 selenium 从以前的列表网页中获取数据
【发布时间】:2017-07-20 14:41:28
【问题描述】:

我有一个场景,我正在尝试使用 selenium 和 python 从详细信息页面获取一些数据。我是 selenium 和 Python 的新手

我尝试使用 self.driver.execute_script("window.history.go(-1)")

返回上一页并开始获取 2,3、4 记录等,但问题是: 获取 1 条记录后,发生 Click 事件,它移动到详细信息页面并获取剩余数据但是,当它从详细信息页面向后移动到列表页面时,它会抛出错误

在 cmpname = selectAll.find_element_by_css_selector(".Capsuletitle h2")

抛出错误 StaleElementRefrenceException: Element is not attach to the page document

基本上,我想要的是我想要从两个页面获取数据的每条记录的列表页面和详细信息页面

这是我的循环代码部分

parentTab = self.driver.find_element_by_class_name("capsuleList")
    for selectAll in parentTab.find_elements_by_class_name("bsCapsule"):

        cmpname = selectAll.find_element_by_css_selector(".Capsuletitle h2")
        print(cmpname.text)

        address = selectAll.find_element_by_css_selector(".Capsuleaddress a span")
        print(address.text)

        telephone = selectAll.find_element_by_css_selector(".Capsuletel")
        print(telephone.text)

        selectAll.find_element_by_css_selector('.Capsuletitle div a').click()
        time.sleep(20)
        adrurl = self.driver.find_element_by_css_selector('.CapsulecallToAction a').get_attribute('href')
        print(adrurl)
        self.driver.execute_script("window.history.go(-1)")
        time.sleep(20)

问候

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    首先,您可以只使用 driver.back(),而不是使用 self.driver.execute_script("window.history.go(-1)")。至于您遇到的错误,最常见的原因是该元素所属的页面已被刷新,或者用户已导航到另一个页面。因此,我建议您在返回页面后再次尝试查找该元素。我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2021-12-05
      • 2017-12-04
      • 1970-01-01
      • 2020-12-16
      • 2021-08-21
      相关资源
      最近更新 更多