方法一
selenium提供的click()方法
driver.findElement(By.xpath(".....")).click();
方法二
那么我们一定是要点了它才能完成测试用例的执行,第一种方式不行,还有什么其他方法呢,我去手动测试这个按钮,是否接受键盘的Enter键,果然响应了Enter键,于是立刻用selenium提供的方法代码实现
driver.findElement(By.xpath("...")).sendKeys(Keys.ENTER);
方法三
于是封装了敲击键盘的方法,尝试不用Selenium提供的方法,实现敲击Enter键
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
public class KeyBoardUtil {
/**Enter键封装*/
public static void pressEnterKey(){
Robot robot = null;
try{
robot = new Robot();
}catch (AWTException e){
e.printStackTrace();
}
//调用keypress方法来实现按下Enter键
assert robot != null;
robot.keyPress(KeyEvent.VK_ENTER);
//调用keyrelease方法来实现释放Enter键
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
方法四
/**
*
* @param driver 浏览器驱动
* @param xpath xpath定位表达式
*/
public static void javaScriptClick(WebDriver driver, String xpath) {
WebElement element = driver.findElement(By.xpath(xpath));
try{
if(element.isEnabled() && element.isDisplayed()){
System.out.println("使用JS进行也面元素单击");
//执行JS语句arguments[0].click();
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
}else {
System.out.println("页面上元素无法进行单击操作");
}
}catch (StaleElementReferenceException e){
System.out.println("页面元素没有附加在页面中" + Arrays.toString(e.getStackTrace()));
}catch (NoSuchElementException e){
System.out.println("在页面中没有找到要操作的元素" + Arrays.toString(e.getStackTrace()));
}catch (Exception e){
System.out.println("无法完成单击操作" + Arrays.toString(e.getStackTrace()));
}
}