gpt4 book ai didi

python - Selenium Python : Check that JS variable is true

转载 作者:行者123 更新时间:2023-11-30 22:29:39 25 4
gpt4 key购买 nike

我正在尝试使用 python 中的 selenium 包来加载要保存的动态网站。但我的成功有好有坏。我注意到成功保存的页面和未保存的页面之间存在差异。在成功者的 HTML 源代码中,我看到了

<script language="javascript" type="text/javascript">
var PageIsReady = true;
</script>

而对于其他情况,var PageIsReady 为 false。有没有办法可以在变量变为 true 后触发保存?

这个stackoverflow question显示了如何执行超时,但它会查找标签是否存在,而我希望它由脚本变量的值触发。

最佳答案

这个问题的一个很好的解决方案可能是实现一个自定义的等待条件,它将检查变量是否被定义。条件必须看起来像这样(注意,没有经过彻底测试):

class js_variable_evals_to_true(object):
def __init__(self, variable):
self.variable = variable
def __call__(self, driver):
return driver.execute_script("return {0};".format(self.variable))

用法:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

chrome = webdriver.Chrome()
chrome.get("http://google.com")
try:
element = WebDriverWait(chrome, 10).until(js_variable_evals_to_true("toolbar.visible")
finally:
chrome.quit()

检查source code在 Selenium 文档中了解如何实现自定义等待条件。

关于python - Selenium Python : Check that JS variable is true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46275525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com