【问题标题】:Java Phantomjs behaving different in windows and linuxJava Phantomjs 在 Windows 和 linux 中的行为不同
【发布时间】: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&params=etc。 ,而是我得到 www.somesite.com/?search=xxxxx,默认搜索没有任何特定的搜索参数。

【问题讨论】:

  • 你在这两种情况下都使用https吗?
  • @Pikachu 不,他们都是http
  • 您是否尝试通过使用--debug=true 命令行选项和onResourceError 回调来获取更多信息?
  • this case 中,使用回调非常有助于检测问题。
  • 你用phantomjs开过票吗?您是否制作了最小的可重现示例,以便其他人可以重现以提供帮助?

标签: java linux phantomjs


【解决方案1】:

您需要使用onResourceError 回调,找出问题所在。
您还需要使用以下Command-Line 选项:

--ignore-ssl-errors=true --ssl-protocol=any --debug=true

另请参阅:this issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-16
    • 2021-04-26
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多