【问题标题】:Import class Actions does not working in ChromeDriver导入类操作在 ChromeDriver 中不起作用
【发布时间】:2017-05-09 18:08:53
【问题描述】:

导入类操作在 ChromeDriver 中不起作用。我的环境是 chromedriver 2.29 + selenium webdriver 3.4.0 + Chrome 58.0.3029.96 + Eclipse Neon.3 Release (4.6.3)。我按和弦Ctrl + Shift + O(在 Eclipse 中自动导入) - 它不会发生。如果我在 Eclipse 的代码中插入字符串import org.openqa.selenium.interactions.Actions;,它会标记为错误。 我还尝试使用 geckodriver 0.16.1 + selenium webdriver 3.4.0 + Firefox 53.0.2 + Eclipse Neon.3 Release (4.6.3) 运行此类 - 结果相同。

我的 Maven pom.xml:

<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.andrey</groupId>
  <artifactId>Geckodriver</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Geckodriver testing</name>
  <description>Testing project for Udemy</description>

<properties>
    <selenium.version>3.4.0</selenium.version>
    <testng.version>6.9.9</testng.version>
</properties>

<dependencies>
    <dependency>
       <groupId>org.seleniumhq.selenium</groupId>
       <artifactId>selenium-java</artifactId>
       <version>${selenium.version}</version>
    </dependency>
    <dependency>
       <groupId>org.testng</groupId>
       <artifactId>testng</artifactId>
       <version>${testng.version}</version>
       <scope>test</scope>
    </dependency>
</dependencies>

【问题讨论】:

  • 您究竟是如何将 selenium 库添加到您的项目中的?如果它是一个罐子(或多个罐子),那么告诉你从哪里得到它。 org.openqa.selenium.interactions.Actions 类是 selenium-api 依赖项的一部分,但对于 org.openqa.selenium.WebDriver 接口也可以这样说,它在您的项目中可见。
  • @M. Czerwinski,我没有明确添加库。我创建了 maven 项目,并在 pom.xml 文件中标记为 selenium.version 3.4.0。之后,maven 会自动在我的项目中导入所有需要的库。
  • 你能具体说明你使用的是哪个maven依赖,是selenium-java吗?另外,你能在 Eclipse 中检查你的 selenium 依赖项中的类吗?它应该看起来像this,如果对你来说不一样,请张贴截图。
  • @M. Czerwinski,我在哪里可以看到像你的截图一样的硒依赖?我有这个savepic.ru/13898220.png 另外,我在第一篇文章中添加了 pom.xml 文件。
  • @M. Czerwinski,savepic.ru/13949408.png 类 Actions 缺席。

标签: java eclipse selenium-webdriver webdriver selenium-chromedriver


【解决方案1】:

您不能将您的类命名为Actions,然后在没有限定条件的情况下创建org.openqa.selenium.interactions.Actions 类的对象。

如果必须,那么创建此类对象的正确方法是:

org.openqa.selenium.interactions.Actions builder = new org.openqa.selenium.interactions.Actions(driver);

否则,只需重命名您的 .java 文件或 class

来自:

public class Actions {
    // code here
}

到:

public class MyCustomActions {
    // code here
}

【讨论】:

  • 谢谢,这个符号是可行的,但我认为它是半解决方案。为什么 webdriver 3.4.0 不包括 Actions 类?你怎么看待这件事?最近我曾经webdriver 2.53.1Actions 类出现在webdriver 中。
  • 我可以在 webdriver 3.4.0 中人工添加这个类,并在我的项目中使用短符号Actions builder = new Actions(driver);
  • 不,你不能。您必须重命名您的class 或使用org.openqa.selenium.interactions.Actions builder = new org.openqa.selenium.interactions.Actions(driver);。我已经更新了答案。
  • 对不起,我刚刚猜到我的 file.java 的名称与所需的类 Actions 相同。我看到了你的解释和解释。谢谢,我是假人)
猜你喜欢
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 2018-11-25
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
相关资源
最近更新 更多