Java 元素在使用“自定义”时单击“不工作”;关键字驱动程序框架“;

Java 元素在使用“自定义”时单击“不工作”;关键字驱动程序框架“;,java,selenium-webdriver,apache-poi,Java,Selenium Webdriver,Apache Poi,我已经为一个站点开发了关键字驱动的框架,它运行良好。现在我需要创建第二个网站,我试图点击链接,但它不工作。有人遇到过这个问题吗?或者有人知道为什么这在一个站点上有效而在另一个站点上无效?我使用SeleniumWebDriver 2.33和POI3.8从excel中读取数据,包括XPath在内的所有数据都包含在excel文件中。我的JUnit测试通过了,但是我点击的链接页面没有加载。我添加了许多等待声明,但仍然没有运气 在这种情况下,我会提出一些几乎总是对你有用的建议: 使用Selenium ID

我已经为一个站点开发了关键字驱动的框架,它运行良好。现在我需要创建第二个网站,我试图点击链接,但它不工作。有人遇到过这个问题吗?或者有人知道为什么这在一个站点上有效而在另一个站点上无效?我使用SeleniumWebDriver 2.33和POI3.8从excel中读取数据,包括XPath在内的所有数据都包含在excel文件中。我的JUnit测试通过了,但是我点击的链接页面没有加载。我添加了许多等待声明,但仍然没有运气

在这种情况下,我会提出一些几乎总是对你有用的建议:

使用Selenium IDE(firfox插件)并记录您现在想要执行的相同事件

  • 查看特定元素是否接受单击或单击链接或其他内容。您可以从表中的命令列表中选择特定命令,然后单击Target下拉列表以查看查找该元素(包括xpath)的各种方法

  • 或者将代码转换为JUnit/Webdriver格式,并检查xpath是否错误,或者元素是否无法使用xpath接受click事件


  • 您所需要做的就是处理抛出的异常。您没有说,但我假设您得到的是ElementNotFound异常或类似异常。您所需要做的就是优雅地处理它,通过将.findElement方法放入一个循环中,您可以重试一段时间,直到它成功。另一种方法是与.ignoring方法一起使用


    你说的“不起作用”是什么意思?提供任何错误日志或其他信息。既然已经有很多,比如JBehave,那么为什么要开发自己的关键字BDD框架呢?我还假设您正在使用JUnit4.11中的参数化注释?页面是否未加载,或者只是Selenium无法单击您定义的元素?@djangofan浏览器打开并导航到给定的URL并传递消息,它没有选择click link方法,下面是eclipse公共静态void clickLink中的方法(WebDriver驱动程序,字符串xpath){driver.findElement(By.xpath(xpath)).click();}所有的URL和XPath都包含在excel中。@Sankumarsingh当我说它不起作用时,我是说它没有点击链接,这在其他网站上运行得很好。我没有任何JUnit测试失败。谢谢,先生,我尝试了多次下载IDE,但不幸的是,它对我来说总是消失。但我找到了另一个解决方案,我想当我们希望selenium从excel读取值,然后在浏览器上执行操作时,它会变得非常慢。我在每个不同的方法之后添加了大量等待语句。不要下载selenium IDE。相反,请安装“selenium Builder”。你会有更好的结果。Madi…如何摆脱它完全是你的选择。但是,正如你所说,selenium似乎在你的情况下花费了意想不到的时间。肯定有一些错误。顺便说一句,从安装和安装后下载IDE,在firefox浏览器的工具下检查它。谢谢你的帮助,我非常感谢。事实上,我没有遇到任何异常。但我非常喜欢你的FluentWait代码,我会尝试将其实现到我的框架中。好的,但你只需要在非常清楚的情况下这样做。findElement的标准“隐式等待”正在抛出异常。否则,标准“隐式等待”我上面展示的“显式”方法只是一个安全途径,如果你需要一些非常防错的东西。