本速查表是为 Selenium初学者准备的速成课程,旨在帮助他们了解 Selenium 的基本概念。
| 浏览器 | 语法 |
|---|---|
Chrome |
WebDriver driver = new ChromeDriver(); |
Edge |
WebDriver driver = new EdgeDriver(); |
Firefox |
WebDriver driver = new FirefoxDriver(); |
Safari |
WebDriver driver = new SafariDriver(); |
| 定位器 | 语法 |
|---|---|
className |
driver.findElement(By.className (“key”)) |
cssSelector |
driver.findElement(By.cssSelector(key")) |
id |
driver.findElement(By.id(key")) |
linkText |
driver.findElement(By.linkText(key")) |
name |
driver.findElement(By.name(“key")) |
partialLinkText |
driver.findElement(By.partialLinkText(“key”)) |
tagName |
driver.findElement(By.tagName (“key”)) |
xpath |
driver.findElement(By.xpath(“key”)) |
driver.get("https://www.example.com");
driver.quit();
driver.close();
| 描述 | 语法 |
|---|---|
导航到一个新的 URL |
driver.navigate().to("https://www.newsite.com"); |
前进到下一页 |
driver.navigate().forward(); |
返回到上一页 |
driver.navigate().back(); |
刷新当前页面 |
driver.navigate().refresh(); |
| 描述 | 语法 |
|---|---|
切换到一个 frame |
driver.switchTo().frame("frameId"); |
切换回主内容 |
driver.switchTo().defaultContent(); |
Alert alert = driver.switchTo().alert();
// 用于点击警告框的“确定”按钮。
alert.accept();
// 用于点击警告框中的“取消”按钮。
alert.dismiss();
// 用于向警告框发送文本
alert.sendKeys("text");
// 用于捕获警告消息。
alert().getText();
Actions actions = new Actions(driver);
// 将鼠标指针移动到元素的中心并点击它
actions.moveToElement(element).click().build().perform();
// 对元素执行双击操作
actions.doubleClick(element).perform();
// 将元素从一个点拖动到另一个点
actions.dragAndDrop(source, target).perform();
// 向元素发送一系列按键
actions.sendKeys(element, "text").perform();
// 获取页面标题
driver.getTitle();
// 获取当前页面 URL
driver.getCurrentUrl();
// 获取整个页面源代码
driver.getPageSource();
// 显式等待:这些是条件等待,可以应用于满足特定条件
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(element));
// 隐式等待:一旦命令运行,隐式等待将在浏览器打开的整个持续时间内保持。
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// 流畅等待:Selenium 中的流畅等待标记了 Selenium WebDriver 等待某个条件(Web 元素)变为可见的最长时间。它还定义了 WebDriver 在抛出“ElementNotVisibleException”之前检查条件出现的频率。
FluentWait wait = new FluentWait(driver);
//指定等待的超时时间
wait.withTimeout(5000, TimeUnit.MILLISECONDS);
//指定轮询时间
wait.pollingEvery(250, TimeUnit.MILLISECONDS);
//指定要忽略的异常
wait.ignoring(NoSuchElementException.class)
//这是我们指定等待条件的方式。
wait.until(ExpectedConditions.alertIsPresent());