无法确定Google地图中的加载状态

时间:2019-04-24 21:16:07

标签: selenium google-maps selenium-chromedriver

我有一个用Java和Selenium编写的测试,基本上可以搜索提供程序。然后,点击提供者的将此位置地图链接,然后打开一个google地图。切换到新窗口后,我将等待该地图的xpath可见性。

URL类似于

https://www.google.com/maps/dir//945+N+12th+St,+Milwaukee,+WI+53233/@43.0426642,-87.9297109,17z/data=!4m8!4m7!1m0!1m5!1m1!1s0x88051979232b79cd:0x905e19b746c46eb3!2m2!1d-87.9275222!2d43.0426642

这已经工作了一年了。今天我们更新到Chrome版本74.0.3729.108(正式版本)(64位),因此我们用74.0.3729.6替换了旧的Chromedriver(现在给我们一个错误,Chrome版本必须在70到73之间)我们的首席开发人员从网站上下载的。

问题是,现在,仅对于某些地址,我会收到该错误 未知错误:无法从此类执行上下文中确定加载状态

建议一些堆栈溢出项目

 1. Updating the Chrome Driver
 2. Using a longer timeout

从上面可以看到,我们更新了chromedriver,使其与Chrome版本保持一致。我也将超时时间更新为300秒(5分钟),但都没有用。

我对导致问题的其他原因一无所知。我等待的xpath是 // div [@ aria-label ='Map'] ,但我现在也尝试了其他xpath,例如“ // div [@ id ='streetviewcard']” 。我验证了切换到的窗口是driver.getWindowHandles()。get(1)。我已经保存了原始手柄,因此可以切换回去。我看着所有的窗把手,只有两个,原来的一个和我切换到的那个。

没有其他搜索可以提供有用的信息。

1 个答案:

答案 0 :(得分:0)

我完全一样的错误,移至v74。

chromedriver或chrome必须更改某些东西-我假设打开一个新标签页后,执行比以前更快。很难说出实际发生了什么变化,但最终我还是通过睡眠解决了问题:

此外,值得注意的是,getWindowHandles()以未定义的顺序返回-因此根据您的用例,可能需要一些额外的处理。

https://github.com/dvsa/mot-automated-testsuite/compare/ops-OPSTEAM-2827-selenium#diff-1fa0893dd1ad67d9c1a4ee1e777c20cb