带有硒的HTML单元驱动程序不要单击按钮

时间:2018-08-05 04:17:07

标签: javascript selenium-webdriver jmeter automated-tests htmlunit-driver

我想单击html单元驱动程序中带有onclick标记的元素。但这没用。

Page source:

我尝试了以下方法。

  1. 点击方法;

    公共HtmlUnitDriver驱动程序=新的HtmlUnitDriver(BrowserVersion.CHROME,true); driver.get(appURL); WebElement dropBoxbutton = driver.findElement(By.xpath(“ // img [@ class ='idp-image'] / ..”));;         dropBoxbutton.click();

  2. 提交方法;

    public HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME, true);
    driver.get(appURL);
            WebElement dripBoxbutton = driver.findElement(By.xpath("//img[@class='idp-image']/.."));
                    dripBoxbutton.submit();
    

    使用提交按钮时出错:

    响应消息:javax.script.ScriptException:源文件:对import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org. . . . '' : Method Invocation dripBoxbutton.submit : at Line: 48 : in file: inline evaluation of: import org.openqa.selenium.By;的内联评估:导入org.openqa.selenium.WebDriver;导入组织。 。 。 。 '':dropBoxbutton .submit()

    目标异常:java.lang.StackOverflowError  在线评估:``导入org.openqa.selenium.By;导入org.openqa.selenium.WebDriver;导入组织。 。 。 。 ”在第48行

    响应头:

    1. 密钥释放

      导入org.openqa.selenium.Keys;  公共HtmlUnitDriver驱动程序=新的HtmlUnitDriver(BrowserVersion.CHROME,true);     driver.get(appURL); WebElement dropBoxbutton = driver.findElement(By.xpath(“ // img [@ class ='idp-image'] / ..”));; dropBoxbutton.sendKeys(Keys.ENTER);

使用Kye释放器时出错:

响应消息:javax.script.ScriptException:源文件:对import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org. . . . '' : Error in method invocation: Method sendKeys( org.openqa.selenium.Keys ) not found in class'org.openqa.selenium.htmlunit.HtmlUnitWebElement' : at Line: 49 : in file: inline evaluation of: import org.openqa.selenium.By;的内联评估:导入org.openqa.selenium.WebDriver;导入组织。 。 。 。 '':dropBoxbutton .sendKeys(键.ENTER)  在线评估:``导入org.openqa.selenium.By;导入org.openqa.selenium.WebDriver;导入组织。 。 。 。 ”在第49行

Response headers:
  1. 动作方法;

     import org.openqa.selenium.interactions.Actions;
        public HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME, true);
        driver.get(appURL);
        WebElement webElement = driver.findElement(By.xpath("//img[@class='idp-image']/.."));
                Actions builder = new Actions(driver);
                builder.moveToElement(webElement).click(webElement);
    

    builder.perform();

如何找到一种在HTML单元驱动程序中单击按钮的方法。

1 个答案:

答案 0 :(得分:0)

您收到的错误表示语法问题,可以通过将代码放入try block中来获得更多信息,例如:

try {
    //your code here
}
catch (Throwable ex) {
    log.error("Failure in script", ex);
}

这样,您将可以在 jmeter.log 文件中查看问题的根本原因。

尤其是您的情况,我期望您使用的是Beanshell语言不支持的某些功能。您可以尝试切换到Groovy-最有可能会自动解决您的问题:

JMeter WebDriver Groovy

此外,根据JMeter Best Practices,您应该将Groovy用于JMeter中的任何脚本编写任务,主要是因为Groovy has better performance than other JMeter scripting options