调用浏览器,来进行自动化测试,是一个常规操作,或者说针对少量测试用例,可以打开浏览器运行
但是针对大量运行测试用例来说,如果每个测试用例都需要调用一次 浏览器,那么无疑对服务器增加了巨大的压力
那么有没有一个办法,不调用浏览器,让浏览器在后台偷偷工作呢 ?
这个可以有: 用chrome-headless
Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。文章来源:https://www.toymoban.com/news/detail-587971.html
用法:文章来源地址https://www.toymoban.com/news/detail-587971.html
package stzz.architect.ljxwtl.cn;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.time.Duration;
public class SeleniumMain {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","/Users/stzz/Downloads/chromedriver");
ChromeOptions chromeOptions = new ChromeOptions();
//设置 chrome 的无头模式
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--start-maximized");
ChromeDriver webDriver = new ChromeDriver(chromeOptions);
webDriver.manage().window().maximize();
webDriver.get("http://baidu.com");
webDriver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
WebElement userNameElement = webDriver.findElement(By.cssSelector(".pass-text-input.pass-text-input-userName"));
userNameElement.sendKeys("XXXXXXXXXX");
WebElement passwordElement = webDriver.findElement(By.cssSelector(".pass-text-input.pass-text-input-password"));
passwordElement.sendKeys("XXXXXXXXXX");
WebElement sendClickElement = webDriver.findElement(By.cssSelector(".pass-button.pass-button-submit"));
sendClickElement.click();
}
}
到了这里,关于selenium中ChromeOptions的headless(不显示页面的界面,即在后台运行)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!