当前位置: 首页 > 知识库问答 >
问题:

如何为Selenium WebDriver推出的Chrome和Opera在隐姓埋名/私人模式下设置浏览器窗口大小?

宋宇
2023-03-14
Window window = driver.manage().window();
window.setPosition(new Point(0, 0));
window.setSize(new Dimension(width, height));

但这段代码并不是在所有情况下都有效:

+-------------------+----------+-------------------+
|      Browser      | Standard | Incognito/Private |
|-------------------|----------|-------------------|
|      Chrome       |  works   |   does not work   |
|-------------------|----------|-------------------|
|      FireFox      |  works   |       works       |
|-------------------|----------|-------------------|
| Internet Explorer |  works   |       works       |
|-------------------|----------|-------------------|
|      Opera        |  works   |   does not work   |
+-------------------+----------+-------------------+

如何解决这个问题?我知道我可以使用chromeoptionsoperaoptions将参数传递给驱动程序。但我想在测试执行期间更改大小。如果我不需要对JavaScript进行eval,那就太好了。

共有1个答案

樊腾
2023-03-14

Chrome和Opera浏览器中的自动化测试存在一些问题。

问题:

  • 铬:
    • Chrome自动化扩展在隐姓埋名模式下不允许
    • Selenium在隐姓埋名模式下不能使用Window()函数
      null
    ChromeDriver driver = new ChromeDriver(capabilities);
    driver.get("chrome://extensions-frame");
    WebElement checkbox = driver.findElement(By.xpath("//label[@class='incognito-control']/input[@type='checkbox']"));
    if (!checkbox.isSelected()) {
        checkbox.click();
    }
    
    OperaDriver driver = new OperaDriver(capabilities);
    driver.get("chrome://extensions");
    WebElement checkbox = driver.findElement(By.xpath("//div[contains(@class, 'incognito-control')]/label/input[@type='checkbox']"));
    if (!checkbox.isSelected()) {
        checkbox.click();
    }
    

 类似资料: