我正在使用Python3和Selenium firefox提交一个表单,然后获取它们随后登录的URL。我就是这样做的
inputElement.send_keys(postnumber)
inputElement.submit()
time.sleep(5)
# Get Current URL
current_url = driver.current_url
print ( " URL : %s" % current_url )
这是工作的大部分时间,但有时网页需要超过5秒加载,我得到旧的网址,因为新的一个还没有加载。
我该怎么做?
在我的代码中,我创建了一个上下文管理器,它执行以下操作:
html
元素的引用过时(这意味着页面已开始重新加载)document.readyState
完成(这意味着页面已完成初始加载)如果页面中的内容填充了额外的ajax调用,我可以在这之后再添加一个等待,等待一个我知道在上述四个步骤之后不会立即出现的元素。
有关详细说明,请参阅此博客文章:How to get Selenium to wait for page load after a click
尝试以下方法:
这将允许您在表单提交后最多等待15秒,直到更改页面标题(如果新页面和旧页面上有不同的标题,)以获取新的
URL
。如果要处理新页上的元素,则可能需要使用以下代码:来自
expected_conditions
的url_changes
帮助程序正是为了这个目的:相关问题 更多 >
编程相关推荐