新的ChromeOptions()优于DesiredCapabilities.chrome()

时间:2018-12-13 21:04:05

标签: java selenium-webdriver automated-tests selenium-chromedriver

我是Java测试自动化的新手。运行测试时,我收到以下消息。 怎么了谢谢你。

  

消息:org.openqa.selenium.remote.DesiredCapabilities chrome

     

信息:使用new ChromeOptions()胜过DesiredCapabilities.chrome()   在端口33954上启动ChromeDriver 2.44.609538(b655c5a60b0b544917107a59d4153d4bf78e1b90)仅允许本地连接。

Java File
import org.junit.Test;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class TestCase {
    @Test
    public void doTestCase(){
        System.setProperty("webdriver.chrome.driver","D:\\Drivers\\Chrome Driver\\chromedriver\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("start-maximized");
        ChromeDriver driver = new ChromeDriver(options);
        driver.get("https://www.google.com/");
    }
}

Maven File
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.alkan.testautomation</groupId>
    <artifactId>JavaTestAutomaiton</artifactId>
    <version>1.0-SNAPSHOT</version>
<dependencies>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
        <version>2.44.0</version>
    </dependency>
</dependencies>
</project>

2 个答案:

答案 0 :(得分:2)

此消息中显示的INFO是因为您可能已使用DesiredCapabilities。因为,如果您使用ChromeOptions,则不应获取INFO。查看DesiredCapabilities.class包含哪些内容:

public static DesiredCapabilities chrome() {
    LOG.info("Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`");
    return new DesiredCapabilities("chrome", "", Platform.ANY);
}

Python,Ruby等支持DesiredCapabilities类的使用。尽管Java中也提供了DesiredCapabilities类,但不建议在Java中使用。

相反,我们可以使用ChromeOptions类。 Java,Python等支持此功能。

参考号:https://chromedriver.chromium.org/capabilities

答案 1 :(得分:0)

您需要进行以下更改-

ChromeOptions cap = new ChromeOptions(); 
cap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR,
                  UnexpectedAlertBehaviour.IGNORE);

driver = new RemoteWebDriver(new URL("http://hub:4444/wd/hub"),cap);

它将解决问题,并且在执行时不会遇到该日志