我知道用户可以通过使用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");
除此之外还有一种方法可以执行点击操作吗?
您可以使用:
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");
提交();如果当前元素是表单或表单中的元素,则会将其提交给远程服务器。如果这导致当前页面发生更改,则此方法将阻止,直到加载新页面
以下是一些对单击按钮/图像有用的方法。
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();
如果你想点击一个按钮或通过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();
第二个选项在所有情况下都无法帮助您。