Python返回上一页并记住元素
Python back to previous page with remembering the elements
我的脚本抓取页面,如果根据我的要求有一个新元素,它会单击按钮,当只有一个元素时,一切都很完美,但问题是当它单击按钮时,会打开一个新页面。所以若有不止一个元素,我需要回到上一页继续处理。
我确实尝试了browser.back()
,但当它回到上一页时,它不记得元素,并如我所料给出了这个错误:selenium.common.exceptions.StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up
的行if len(css(".Total", parent=new, nowait=True)) > 0:
是第一行,我让它识别新元素。
我还试图通过单击按钮打开一个新的选项卡/窗口,但按钮没有这个功能,因为它是javascript。有没有有效的方法来解决这个问题?
first_window_handler = driver.current_window_handle
driver.find_element_by_css_selector("body").send_keys(Keys.CONTROL + 't')
second_window_handler = driver.window_handles[1]
# from second page
driver.switch_to.window(second_window_handler)
element_from_second = driver.find_element_by_css_selector('something')
# from first page
driver.switch_to.window(first_window_handler)
element_from_first = driver.find_element_by_css_selector('something else')
现在您可以在窗口之间切换,并且元素仍然是可交互的
根据异常
selenium.common.exceptions.StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up
我们知道,每当页面加载webdriver时,就会丢失对之前保存的webelement的引用。
因此,最好的方法是在调用java-prospective中预定义的关键字/方法时始终动态传递定位器,以便webdriver在该实例中查找该web元素并执行操作。
有时,我们可能会在web元素的循环列表中收到相同的异常,因为在循环中,由于操作,webdriver可能会失去引用,所以在循环中我们还需要指定定位器,这样它就不会失败。例如,如果我需要点击链接,我会给出这样的路径"//a["+i+"]"
谢谢,Murali
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 返回上一页时,Javascript仍处于活动状态
- Python返回上一页并记住元素
- 如何返回到上一页并用php或javascript刷新它
- 返回上一页,不加载执行正文
- 浏览器返回上一页功能,如果返回如何重新加载文档
- 自动返回上一页
- 如何在 asp.net 中使用角度选项卡返回上一页
- 如果用户单击“返回”,如何在上一页上隐藏引导模式
- 如何在不刷新 angularjs 的情况下返回上一页
- 如何阻止/防止用户在注销后返回上一页 ASP.NET
- 蛋糕2,返回/取消按钮转到上一页
- jquerymobile返回上一页onclick事件不起作用
- 音频文件在返回上一页时自动播放
- 如何限制用户刷新页面或返回上一页
- 如何在phonegap中使用javascript返回上一页
- 无需重新加载即可返回上一页
- 如何在ASP.NET中使用Javascript返回上一页
- 返回上一页的元标记
- 在页面刷新多次JQUERY后返回上一页