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

问题描述 投票:1回答:4

我知道用户可以通过使用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");

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

java selenium selenium-webdriver
4个回答
3
投票

您可以使用:

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

此外,有一些方法可以使用Javascript执行此操作,但通常不建议:

使用非本机Javascript执行程序:

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

或者使用Javascript库:

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

1
投票

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


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使用Actions类

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

0
投票

如果你想点击一个按钮或通过selenium将值设置为web元素你可以使用XPATH变量,要使用XPATH变量你必须找到它的值,你可以使用Firefox浏览器找到它,并且很少像firebugs那样添加add_on。

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

我建议你使用XPATH变量,这样你就可以在网页中找到任何web元素。

如果要查找超链接web元素,则可以在确定标记名称时使用By.linkText,或者选择By.partialLinkText,即使您使用部分Web元素名称也可以找到它,但在这种情况下,您的部分搜索关键字匹配更多比一个元素,By.partialLinkText将无法正常工作。例如,如果您知道超链接的完整标记名称,则可以使用

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

要不然

您只知道部分标签名称的地方

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

第二个选项在所有情况下都无法帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.