如何运行测试而不在IE / Chrome WebDriver的Action类中传递本地相对路径,并仅使用pom文件中的maven依赖项运行

时间:2017-12-05 11:46:15

标签: java maven selenium selenium-chromedriver selenium-iedriver

我想避免在下面的方法中给出IE / Chrome驱动程序的相对路径或绝对路径。相反,我想将pom文件中的IE / Chrome驱动程序称为maven依赖项。我想要传递pom依赖路径来调用驱动程序,而不是使用下面的本地路径。你能不能请任何人指导我。

public static void openBrowser(String data) throws Exception{

        if(data.equals("IE")){              
            File file = new File("C:\\Automation\\external jars\\IE Related\\IEDriverServer.exe");
            System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
            driver = new InternetExplorerDriver();
            driver.manage().window().maximize();
            }
        else (data.equals("Chrome")){
            File file = new File("C:\\Automation\\external jars\\Drivers\\ChromeDriver\\chromedriver.exe");
            System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
            driver=new ChromeDriver();
            driver.manage().window().maximize();
            }       

}

1 个答案:

答案 0 :(得分:1)

首先,通过将工件的内部可执行驱动程序文件解压缩到项目中来复制依赖项 这是您在pom(配置文件或默认构建)中需要的示例:

                <!-- copy driver file -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.1</version>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/driverDir</outputDirectory>
                                <resources>
                                    <resource>
                                        <include>driver.file</include>
                                        <directory>${project.build.directory}/dependency</directory>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

在此之后,您应该在$ {project.build.directory} / dependency文件夹中找到该文件,或者配置该插件以将其解压缩到您想要的位置。

如果需要,您可以从这个地方将文件复制到任何地方。如果你想要它相对于你的项目,你可以使用maven vars,如“$ {project.build.directory}”甚至源目录。

MyClass.class.getResource("/driver.file");

这个文件你可以提供给selenium.Lets假设你把它放在类路径上的“src / main / resources”中你应该能够用Java找到这个文件

Observables