我知道用户可以通过点击方法点击特殊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");
除此之外还有一种方法可以执行点击操作吗?
答案 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选项在所有情况下都无法帮助您。