硒即使在超时后也找不到元素

时间:2018-10-01 10:05:07

标签: python selenium selenium-webdriver web-scraping webdriver

我正在尝试抓取网页,但是在单击操作后尝试访问元素时遇到问题。

当循环第二次开始时,我得到“ stale element referenceelement is not attached to the page document”。

我了解Selenium找不到元素-另一个faredeparturetime div的复选框。我试图放置所有类型的超时,尝试阻止,刷新页面。但最终结果是相同的-无法找到元素或获取selenium.common.exceptions.TimeoutException

也许有人对问题出了什么主意?我的想法不多了,如何解决它:(

P.S我正在使用Python,Selenium和webdriver.chrome。

更新:

我将webDriver更改为Firefox geckodriver,在循环末尾删除了“ wait.until(EC.title_contains(fare.get_attribute('id')))”,并在最后添加了“ driver.implicitly_wait(10)” 。现在它正在工作。尝试使用chrome驱动程序将implicity_wait添加到代码中,但这导致了相同的异常。那么问题可能出在chrome webdriver上吗?

我的代码示例:

fares =driver.find_elements_by_xpath("//td[@class='inputselect 
standardlowfare']/div[1]/input[starts- 
with(@id,'FlightSelectOutboundStandardLowFare') and @type='radio']")


wait = WebDriverWait(driver, 10))
    # elem = wait.until(EC.title_contains((fare.get_attribute('id'))))
    # wait.until(EC.refreshed(EC.staleness_of(fare.get_attribute('id'))))
    # driver.implicitly_wait(10)
    # wait = WebDriverWait(driver, 30)
for fare in fares:

  fare.click()
  print("clicked " ) 
  time.sleep(5)  
    # driver.get(driver.current_url)
    # wait.until(EC.title_contains(('selectiontable')))

  departureTime = driver.find_element_by_xpath("//* [@id='ctl00_MainContent_ipcAvaDay_upnlResSelection']/div[1]/div/table/tbody/tr[4]/td")
  print ("Departure time " + departureTime.text) 
  wait.until(EC.title_contains(fare.get_attribute('id')))

0 个答案:

没有答案