Java Phantomjs在windows和linux中表现不同

时间:2017-02-03 18:25:05

标签: java linux phantomjs

我一直试图解决这个问题,但不确定原因是什么, 我用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,没有任何特定搜索参数的默认搜索。

1 个答案:

答案 0 :(得分:5)

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

>>> complex_list = (1, 2, [3, (complex('4+2j'), 5)], map(str, (range(7, 10))))
>>> tuple(recursive_map(complex_list, lambda x: x.__class__.__name__))
('int', 'int', ['int', ('complex', 'int')], 'map')

另请参阅:this issue