提问人:bsolidgold 提问时间:11/1/2023 更新时间:11/4/2023 访问量:35
全局实例化 WebDriver 时的 ChromeOptions - Java 中的 Selenium Webdriver
ChromeOptions when WebDriver is instantiated globally - Selenium Webdriver in Java
问:
我有一个项目正在使用几种测试方法。我需要 WebDriver 在我实例化后和 ChromeOptions 在全球范围内可用。
我正在使用@Before注释进行大量设置,我认为我可以将 ChromeOptions 传递到全局实例化的 webdriver 中。'options.addArguments()' 在全局不可用,它无法识别我的选项。示例如下:
public class classThatDoesStuff_Test {
private static WebDriver driver = new ChromeDriver();
@Before
public void setUp() {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\TestUser\\Desktop\\SeleniumWorkspace\\ABC\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("--window-size-1400,800");
options.addArguments("--disable-gpu");
}
public void doStuff() {
driver.get("http://foo.bar.com");
}
运行此操作不会启动浏览器无头。
我尝试使用 ChromeOptions 创建一个方法并将其传递给驱动程序。那行不通
private static ChromeOptions options() {
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("window-size=1400,800");
options.addArguments("disable-gpu");
return options;
然后将其传递给我的实例化。但这并没有奏效——正如您可能猜到的那样:)
答:
0赞
Gulzhas Mailybayeva
11/2/2023
#1
private static WebDriver driver;
@Before
public void setUp() {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\TestUser\\Desktop\\SeleniumWorkspace\\ABC\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*", "ignore-certificate-errors");
options.addArguments("--headless=new");
options.addArguments("--window-size-1400,800");
driver = new ChromeDriver(options); // missing to pass chrome options here
}
评论