难以使用HTMLUnitDriver运行selenium脚本

难以使用HTMLUnitDriver运行selenium脚本,selenium,selenium-webdriver,htmlunit-driver,Selenium,Selenium Webdriver,Htmlunit Driver,我已经为自动化编写了一个selenium脚本,我正在使用HTMLUnitDriver在linux上作为无头浏览运行它。我有点担心- 当我尝试使用WebDriver运行相同的脚本时,即WebDriver driver=new FirefoxDriver()它成功运行 但是,当我尝试使用HTMLUnitDriver运行相同的脚本时,即HTMLUnitDriver driver=new HTMLUnitDriver(),我得到一个异常,异常如下: org.openqa.selenium.Timeo

我已经为自动化编写了一个selenium脚本,我正在使用HTMLUnitDriver在linux上作为无头浏览运行它。我有点担心-

  • 当我尝试使用WebDriver运行相同的脚本时,即
    WebDriver driver=new FirefoxDriver()
    它成功运行
  • 但是,当我尝试使用HTMLUnitDriver运行相同的脚本时,即
    HTMLUnitDriver driver=new HTMLUnitDriver()
    ,我得到一个异常,异常如下:
org.openqa.selenium.TimeoutException:等待元素可单击100秒后超时:By.xpath:

我不知道这个异常的根本原因是什么,因为同一个脚本在运行时,firefox或chrome驱动程序没有任何问题,但它不能与HTMLUnitDriver一起工作。我也试过增加时间,但也没有用


请任何人提供任何帮助,我们将非常感谢……谢谢。

团队只是想一想-首先,这似乎是错误-在等待元素可单击100秒后超时:By.xpath:

这意味着在Webdriver中启用了它,而在HtmlUnit中禁用了它。。我想知道,由于任何原因,两者在寻找元素方面是否存在差异

  • 先试试这个
    Firefox::使用Firefox查找元素-检查是否启用

    HTMLUnit::因为您提到了它正在等待可点击,并且未找到元素时出错首先找到元素,然后在下一行显示元素是否启用

  • 另外,在两者之间检查元素是否与您需要的元素相同。检查属性/文本或其他内容

  • 这将告诉您问题是元素本身还是其属性[已启用/可单击]


    类似地,如果同一页面中的某个元素是可查找和可单击的,您也可以检查HTMLUnit驱动程序。

    尝试启用JS-
    HTMLUnitDriver=new HTMLUnitDriver(true)
    我尝试过这一点,但在使用java脚本时,它也没有运行,它显示了索引越界异常-java.lang.IndexOutOfBoundsException:index:4,大小:0这似乎是另一个问题。您必须调试代码才能找到答案。在这里,如果不看代码,就无法完成很多工作。作为替代方案,您可以尝试使用PhantomJS浏览器实现headless selenium自动化。我建议暂时不要使用headless驱动程序。Chrome的启动速度和无头驱动程序一样快,使用XVFB,您不需要真正的GUI来运行它。现在的无头驱动程序使用的是过时的渲染和JavaScript引擎,并不能代表真实世界的场景。