2017-07-20 45 views
1

我有一个场景,我试图从selenium和python的详细页面获取一些数据。我是新来硒和PythonPython-Selenium使用硒在python中获取以前列表网页的数据

我试图用 self.driver.execute_script(“window.history.go(-1)”)

返回到前一页并开始获取2,3 4记录等,但问题是: 取1个记录之后,发生移动到详细信息页面,并获取剩余的数据单击事件但是,当它向后移动,从详细信息页面,它抛出错误

在cmpname =全选列表页面.find_element_by_css_selector(“。Capsuletitle h2”)

它引发错误StaleElem entRefrenceException:元素没有连接到页面文件

基本上,我想我在清单页面,详细信息页面,因为我想从两个页面获取数据的每个记录

这里是我的循环代码部分

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) 

的问候,而不是使用self.driver.execute_script( “window.history.go(-1)”)

回答

0

首先,你可以使用driver.back()。至于你得到的错误,最常见的原因是该元素所属的页面已被刷新,或者用户已经导航到另一页面。所以我建议你在返回页面后再次查找元素。我希望这有帮助!

相关问题