【问题标题】:Not able to click link text in selenium web driver execuiton无法单击 selenium webdriver 执行中的链接文本
【发布时间】:2016-08-03 01:51:04
【问题描述】:

我正在尝试在我的应用程序中单击名为“订单创建”的超链接。我使用了以下代码。当我在 Eclipse 调试模式或 selenium IDE 中执行此步骤时,我可以单击特定链接。但是当我尝试在eclipse中通过Java模式执行,我的代码无法点击这个链接。我们还有其他选择点击这个链接吗?(即等待并点击某些东西)

Driver.findElement(By.xpath(//*[@href='link' and text()='Create Order'])).click();

【问题讨论】:

  • 请分享源代码或者你也试过 Driver.findElement(By.linkText("order create")).click();
  • Driver.findElement(By.linkText("order create")).click();我试过了。但我面临同样的问题。这里的问题是我的驱动程序在页面加载之前点击链接。所以请你帮他们发表一些等待评论。
  • 您在尝试单击链接时是否收到任何错误消息?另外,你能分享一下链接元素的 HTML 吗?

标签: eclipse selenium xpath selenium-webdriver automation


【解决方案1】:

您可以使用带有预期条件elementToBeClickable 的显式等待来等待元素可点击

WebDriverWait wait = new WebDriverWait(Driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@href='link' and text()='Create Order']"))).click();

【讨论】:

    【解决方案2】:

    您好,如果您的驱动程序在页面加载之前点击,则存在同步问题 避免同步问题的最简单方法是使用通用等待,即隐式等待,它表示驱动程序实例在发送任何错误之前等待最大定义(时间秒数)。

     WebDriver driver = new ChromeDriver();
     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    

    在上面的代码中,您告诉驱动程序实例为当前会话中的单个 webelements 最多等待 20 秒。注意上面的等待适用于所有 webelements。

    【讨论】:

      【解决方案3】:

      我在测试步骤之前使用了Thread.sleep(2000);。它解决了我的问题。

      【讨论】:

      • @Thread.sleep 不是一个好习惯,如果相同的问题出现在不同的元素上,你会怎么做
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      相关资源
      最近更新 更多