这让我很困惑。
我们有一个使用Selenium,Specflow和C#的测试框架。当前正在运行Selenium 3.13.1(昨天进行了升级以查看是否存在旧版本(3.11.2))
问题(仅当在Chrome中模拟移动设备时):
在本地运行测试时,一切正常,单击按钮,测试通过。 当在Jenkins从站上远程运行测试时,它有时会工作。有时我会点击,但有时却没有。 当按计划运行作业时,某些测试会持续失败(这些测试在本地运行时运行得很好)。
我尝试添加5秒钟的睡眠时间,但这无济于事。
起作用的一件事是将Click()更改为SendKeys(Keys.Enter)。
执行javascript单击按钮也很好,但是由于两个原因,我不希望更改单击。 1.这是模拟用户输入的最接近动作,而2.在本地效果很好。
Jenkins奴隶上的Chrome版本与我的本地版本(67.0.3396.99)一致,Chrome驱动程序也为嵌入式(2.40.565498)。
自从我尝试使用2.38和2.39版本以来,Chrome驱动程序已于昨天进行了更新,但无济于事。
有人遇到这个问题并找到解决方案吗?
P.S。在非移动仿真中运行测试时,无论在本地还是在Jenkins上,点击都没有问题。
答案 0 :(得分:0)
我有同样的问题。 在我的浏览器中允许弹出窗口之后,click和clickAndWait事件可以正常工作。 也许您也可以更改浏览器。
最好的问候
答案 1 :(得分:0)
对于有此问题的任何人,这是当前时间的当前相关答案。
这不是我们正在使用的框架的问题,而是铬和铬驱动器的问题。
可以找到问题/错误链接here(这是下面引用的已知问题)。
此外,如果您选中documentation for chrome driver mobile emulation,则在第一行中将其提及如下
Note that Mobile Emulation is subject to this known issue.
此答案本身并不能帮助解决问题,但提供了其原因的原因。我发现的“最佳”解决方法是使用JS单击等等。在我们的案例中,由于使用JS进行点击并不能真正模拟实际点击,因此我们暂时停止使用移动仿真。随着新版本的Chrome和ChromeDriver面世,我将不断更新,直到有修复程序为止。
希望您会比我在寻找答案的时候少浪费时间:)