无法使用htmlunit驱动程序执行点击或sendkey

时间:2019-02-20 01:02:21

标签: java selenium selenium-webdriver selenium-grid google-chrome-headless

我正在使用硒3.4.0,并试图单击页面上的元素。在执行点击操作之前,我只是使用了Thread.sleep(12000)(最大等待时间),但是仍然抛出nosuchelement异常。我使用过其他浏览器,例如chomre --headless,但它的工作原理非常完美,并且同样适用于firefox和chorme UI浏览器。

代码:

    WebDriver iDriver=new HtmlUnitDriver();     
    iDriver.get("https://www.xyz:8080/#!/test/createTest");
    String title = iDriver.getTitle();
    System.out.println(title);  
    iDriver.manage().window().setSize(new Dimension(1920, 1200));   
    Thread.sleep(13000);
    org.testng.Assert.assertEquals("UI", title);    
    JavascriptExecutor executor = (JavascriptExecutor)iDriver;
    executor.executeScript("arguments[0].click();", iDriver.findElement(By.xpath(".//span[@class='path']//a[contains(@href,'/testresource/createTestRequest')]")));

尝试了上述的Javascriptexecutor.click()和常规的click()方法,但均无法正常工作。

上面相同的脚本可以与其他浏览器完美配合。

例外:

   org.openqa.selenium.NoSuchElementException: Unable to locate a node using //span[@class='path']//a[contains(@href,'/testresource/createTestRequest')]
   For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
   Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
   System info: host: 'L-MAA-25006133', ip: '10.229.101.11', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191'
   Driver info: driver.version: HtmlUnitDriver

理想情况下,我只想在Google Cloud Platform中的linux框中执行以上脚本。而且我没有权限在那儿安装任何浏览器(例如,chrome,firefox二进制文件)来针对此类浏览器执行脚本。尝试使用chrome --headless选项,但仍在物理路径中查找Chrome二进制文件(/ usr / bin / chrome-browser)以在chromeoptions中进行设置。我们不能在那台机器上做到这一点。因此,我只是编写了脚本,无需指定任何浏览器二进制文件,并且该脚本将作为无头浏览器执行,而无需支持chrome或firefox二进制文件。

请给我您的想法。如果有更好的方法可以做到这一点,我也会尝试这样做。

0 个答案:

没有答案