Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Selenium ChromeDriver没有等待“get()”?_Selenium_Selenium Chromedriver - Fatal编程技术网

Selenium ChromeDriver没有等待“get()”?

Selenium ChromeDriver没有等待“get()”?,selenium,selenium-chromedriver,Selenium,Selenium Chromedriver,WebDriver.get的JavaDoc说。。。该方法将阻塞,直到加载完成 Firefox驱动程序等待所有初始JavaScript完成。然而,ChromeDriver似乎会在下载HTML后立即返回。这使得测试基于JS的web应用程序变得困难,因为当函数返回时,您甚至不知道应用程序是否已呈现 有人知道这是否是预期的行为吗?如果是,如何检查JavaScript是否已完成运行?我们发现,使用selenium,在步骤之间进行大量睡眠可以解决大约95%的问题,并且是处理这些问题的唯一可靠方法。这会导致测

WebDriver.get的JavaDoc说。。。该方法将阻塞,直到加载完成

Firefox驱动程序等待所有初始JavaScript完成。然而,ChromeDriver似乎会在下载HTML后立即返回。这使得测试基于JS的web应用程序变得困难,因为当函数返回时,您甚至不知道应用程序是否已呈现


有人知道这是否是预期的行为吗?如果是,如何检查JavaScript是否已完成运行?

我们发现,使用selenium,在步骤之间进行大量睡眠可以解决大约95%的问题,并且是处理这些问题的唯一可靠方法。这会导致测试速度变慢,但实际上,如果你在模拟浏览器,在现实世界中也会如此缓慢。与其花费大量时间试图排除每一次延迟,不如等待/睡眠,然后继续下去。

这是有史以来最糟糕的方法。任何人都不应该在他们的应用程序中加入睡眠。如果是测试,这主要是硒的用途,那没什么大不了的。您只是在模拟延迟。如果你在一个有很多其他应用的盒子上运行它,那就不太好了。但是,说你永远不应该使用睡眠,这是一种类似于这样的事情,比如是否将括号放在函数start下面的一行。我们正在编写几百个测试脚本。我们正在测试应用程序的功能。我们是否使用睡眠是完全无关紧要的。如果手术就是这样,那为什么要浪费时间呢。拜托,这不是宗教的事情。当你有超过1次的测试时,实际的事情才是真正重要的。睡眠在大多数情况下是不可用的,你不知道这么多的睡眠是否足够,如果你有任何包括自动UI测试的工作流程,你将失去很多时间。在当前测试中使用sleep会浪费您未来的时间。您可以设置隐式等待以避免键入sleep,这可能会提高测试速度,因为只要元素可用,测试就会继续。如果你想等待一个特定的时间,你可以为所选的元素设置一个明确的时间。应该让睡眠变得无用,不是吗?我在Firefox、Chrome和IE上用Selenium测试了数百个大型应用程序,测试JavaScript应用程序没有问题。请给出一个可重复的例子,这样你得到的答案就不会像你已经得到的答案那样只是一堆胡乱猜测或糟糕的建议。