【发布时间】:2017-02-03 18:25:05
【问题描述】:
我一直在尝试解决这个问题,但不确定是什么原因造成的, 我用 java 和 phantomjs 做了一个程序,理论上它们的行为应该是一样的。
PC端和服务器端的Phantomjs都是同一个v.2.0。
在 windows(v.7) 中,mi 测试程序按预期工作,但在 linux (debian) 中,程序失败,当它尝试单击元素时出现此错误:
Caused by: org.openqa.selenium.NoSuchElementException: {"errorMessage":"Unable to find element with css selector
现在,我知道有时我们必须等待几秒钟才能加载页面,这已经完成了(甚至添加了一些以确定)并且它在 Windows 中得到了正确的测试。
我尝试了点击功能:
element.click();
使用 javascript 代码:
JavascriptExecutor js = (JavascriptExecutor)driver;
js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element)
还有动作:
Actions action = new Actions(driver);
action.moveToElement(element).contextClick().build().perform();
//and this code too
action.moveToElement(element).click().build().perform();
有人遇到过同样或类似的问题吗?我还能做什么?从昨天开始我就被卡住了,我无法弄清楚这个问题。
注意:现在我有另一种方法来获取页面而无需交互,但在不同操作系统中执行时仍然会得到与网页不同的结果,例如:
我通常在哪里获得此链接:www.somesite.com/?search=xxxxx&date_in=dd/MM/yyyy¶ms=etc。 ,而是我得到 www.somesite.com/?search=xxxxx,默认搜索没有任何特定的搜索参数。
【问题讨论】:
-
你在这两种情况下都使用
https吗? -
@Pikachu 不,他们都是http
-
您是否尝试通过使用
--debug=true命令行选项和onResourceError 回调来获取更多信息? -
在this case 中,使用回调非常有助于检测问题。
-
你用phantomjs开过票吗?您是否制作了最小的可重现示例,以便其他人可以重现以提供帮助?