在WebDriver中单击webElement有多少种方法?

时间:2016-03-03 11:30:06

标签: java selenium selenium-webdriver

我知道用户可以通过点击方法点击特殊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");

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

4 个答案:

答案 0 :(得分:3)

您可以使用:

yourelement.sendKeys(Keys.RETURN).sendKeys(Keys.ENTER):这相当于关注该元素并在该元素上点击RETURN / ENTER

此外,有些方法可以使用Javacript来完成此操作,但通常不建议这样做:

使用非原生Javascript执行程序:

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

或使用Javascript Library:

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

答案 1 :(得分:1)

提交(); 如果当前元素是表单或表单中的元素,则会将其提交给远程服务器。如果这导致当前页面发生更改,则此方法将阻止,直到加载新页面

答案 2 :(得分:1)

下面是一些对单击按钮/图像有用的方法。

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();

答案 3 :(得分:0)

如果要通过selenium单击按钮或将值设置为Web元素,可以使用 XPATH 变量,要使用XPATH变量,必须找到它的值,您可以使用它找到它Firefox浏览器和一些add_on就像firebugs一样。

driver.findElement(By.xpath(".//*[@id='main']/div[4]/div/button")).click();

我建议您使用XPATH变量,以便可以在网页中找到任何网页元素。

如果要查找超链接web元素,则可以在确定标记名称时使用 By.linkText ,也可以选择 By.partialLinkText 进行查找即使你是部分网页元素名称,但在这种情况下你的部分搜索关键字匹配多个元素,那么By.partialLinkText赢得了不错的工作。 例如,如果您知道超链接的完整标记名称,则可以使用

driver.findElement(By.linkText("Click to Next Page")).click();

只知道部分标签名称

driver.findElement(By.linkText("Next Page")).click();

secound选项在所有情况下都无法帮助您。