WebDriver中的webElement有多少种点击方式?

新手上路,请多包涵

据我所知,用户可以通过使用 click 方法和另一种方法来单击特定的 Webelement,例如使用带有 ASCII 值的 Sendkey 方法来进行左键单击。

 By Click Method: driver.findElement(By.cssSelector(".dbl")).click();

By Ascii Value : driver.findElement(By.cssSelector(".dbl")).sendKey("ASCII VALUE FOR Left Click");

除此之外还有一种方法可以执行点击操作吗?

原文由 SacTan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 518
2 个回答

您可以使用:

yourelement.sendKeys(Keys.RETURN).sendKeys(Keys.ENTER) :相当于聚焦该元素并在该元素上按 RETURN/ENTER

此外,还有使用 Javacript 执行此操作的方法,但通常不推荐这样做:

使用非原生 Javascript 执行器:

((JavascriptExecutor) driver).executeScript("arguments[0].click();", yourelement);

或者使用 Javascript 库:

 JavascriptLibrary jsLib = new JavascriptLibrary();`
jsLib.callEmbeddedSelenium(driver, "triggerMouseEventAt", we, "click", "0,0");

原文由 Prateek 发布,翻译遵循 CC BY-SA 3.0 许可协议

以下是一些可用于单击按钮/图像的方法。

 WebDriver driver = new ChromeDriver();
    driver.get("http://newtours.demoaut.com");
    WebElement signOnImage = driver.findElement(By.xpath("//input[@type='image'][@name='login']"));

// direct method from the API which is recommended always
    signOnImage.click();

1 使用回车键

    //signOnImage.sendKeys(Keys.RETURN);

2 使用JavascriptExecutor

 2.1
    JavascriptExecutor js = (JavascriptExecutor)driver;
    js.executeScript("arguments[0].click();", signOnImage);

2.2
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("document.getElementsByName('login')[0].click()");

3 使用动作类

3.1
    Actions actions = new Actions(driver);
    actions.click(signOnImage).perform();
3.2
    Actions actions = new Actions(driver);
    actions.moveToElement(signOnImage).click().perform();
3.3
    Actions actions = new Actions(driver);
    actions.clickAndHold(signOnImage).release().perform();
3.4
    Actions actions = new Actions(driver);
    actions.sendKeys(signOnImage, Keys.RETURN).perform();

原文由 Ramakrishna Jangatisetty 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题