【问题标题】:Unable to set maven dependencies for RemoteWebDriver无法为 RemoteWebDriver 设置 Maven 依赖项
【发布时间】:2019-05-13 11:14:45
【问题描述】:

由于 Maven 依赖问题,我无法在 Eclipse 中解决 RemoteWebDriver。我需要 RemoteWebDriver 来获取浏览器版本(用于报告目的)。我已经提到了以下 maven 依赖项,但我无法解析 RemoteWebDriver。根据之前的帖子The import org.openqa.selenium.remote.CapabilityType cannot be resolved,我必须手动下载 selenium-standalone-server。我不明白为什么 Maven 依赖是不够的?是否可以添加任何其他 maven 依赖项来解析 RemoteWebDriver

<dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>3.141.59</version>
    </dependency>

*************************
//Below is what I am trying to code
Capabilities cap = ((RemoteWebDriver) driver).getCapabilities();
String browserName = cap.getBrowserName().toLowerCase();

【问题讨论】:

  • 我对 selenium 不是很熟悉,但是如果您提到的 maven 依赖项不够,您可以尝试以下操作:转到站点 github.com/SeleniumHQ/selenium/wiki/RemoteWebDriver 并按照说明进行操作。下载 zip 并解压缩后,您会看到哪些 JAR 文件是必需的,如果您能在 mvnrepository.com 中搜索所需的 JAR,您就会知道缺少哪些依赖项。否则,将手动下载的 JAR 推送到您自己的关联中(如果您有的话)。
  • 手动是可以的。我在考虑更大的图景——运行程序是通过詹金斯,使用虚拟机。 PS:我对 Java 比较陌生

标签: selenium selenium-webdriver


【解决方案1】:
  1. 只有selenium-java就足够了,它会通过Maven transitive dependency mechanism解析selenium-remote-driver

  2. 鉴于您提到您必须手动下载 Selenium Standalone Server,您也不需要此 selenium-server 依赖项

所以应该这么简单:

  • pom.xml:

     <?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.example</groupId>
         <artifactId>selenium-java</artifactId>
         <version>1.0-SNAPSHOT</version>
    
         <dependencies>
             <dependency>
                 <groupId>org.seleniumhq.selenium</groupId>
                 <artifactId>selenium-java</artifactId>
                 <version>3.141.59</version>
             </dependency>
         </dependencies>
    
     </project>
    
  • 测试类:

     import org.openqa.selenium.Capabilities;
     import org.openqa.selenium.remote.DesiredCapabilities;
     import org.openqa.selenium.remote.RemoteWebDriver;
    
     import java.net.URL;
    
     public class SeleniumTest {
    
         public static void main(String[] args) throws Exception {
             System.setProperty("webdriver.chrome.driver", "c:/apps/webdriver/chromedriver.exe");
             DesiredCapabilities capabilities = DesiredCapabilities.chrome();
             RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
             Capabilities cap = driver.getCapabilities();
             String browserName = cap.getBrowserName().toLowerCase();
             System.out.println(browserName);
             driver.quit();
         }
     }
    
  • 演示:

更多信息:

【讨论】:

  • 感谢您的信息。我根据您的帖子重置了依赖项并执行了 mvn clean install。
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 2013-01-24
  • 2017-05-06
  • 2011-11-27
  • 2012-01-12
  • 2013-05-22
  • 2020-07-06
  • 1970-01-01
相关资源
最近更新 更多