Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测浏览器是否运行任何javascript(不更改页面上的js)_Javascript_Browser_Selenium - Fatal编程技术网

如何检测浏览器是否运行任何javascript(不更改页面上的js)

如何检测浏览器是否运行任何javascript(不更改页面上的js),javascript,browser,selenium,Javascript,Browser,Selenium,我正在为selenium开发自定义php客户端,但在实现waitForPageToLoad()函数时遇到问题: 问题是仅仅检查document.readyState是不够的-页面上可能运行一些JS脚本(例如,单击按钮后的一些动画),这将迫使我的waitForPageToLoad()函数继续等待,但是在这种情况下,document.readyState返回complete状态 另一个问题是我不能使用回调,因为我不知道在一个页面上运行什么js。尽管如此,我可以在页面上插入一些js,但我必须确保它不会

我正在为selenium开发自定义php客户端,但在实现
waitForPageToLoad()
函数时遇到问题:

问题是仅仅检查
document.readyState
是不够的-页面上可能运行一些JS脚本(例如,单击按钮后的一些动画),这将迫使我的
waitForPageToLoad()
函数继续等待,但是在这种情况下,
document.readyState
返回
complete
状态

另一个问题是我不能使用回调,因为我不知道在一个页面上运行什么js。尽管如此,我可以在页面上插入一些js,但我必须确保它不会影响页面的正常行为

有人能提出一个可能的解决方案吗? 目前我正在使用最新的FF浏览器


谢谢。

无法检查JavaScript当前是否正在运行

您可以等待元素出现

对于Python,它的工作原理如下:

from selenium.webdriver.support import expected_conditions as EC  # noqa

driver = webdriver.Chrome(...)

el = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//a"))  # change to your needs
)

另请参见:

+1至少对于上述内容,没有可靠的方法。请注意,这正是WebDriver API没有
waitForPageToLoad()概念的原因。
。在一个DOM因JavaScript而不断变化的世界中,“页面已完全加载”是一个不可能以一刀切的方式应用的概念。谢谢。我有同样的观点,但需要确认。