【问题标题】:Unable to locate element link无法找到元素链接
【发布时间】:2017-05-24 21:53:04
【问题描述】:

我正在尝试查找“搜索”链接,但出现以下错误: org.openqa.selenium.NoSuchElementException:无法定位元素: {“方法”:“链接文本”,“选择器”:“搜索”}

我使用 Firebug 检查了对象:

<li onclick="submitSelectedTab('tabSelected', 'TabGroup1', '12');" title="Search">
    <a href="#">
        <span>Search</span>
    </a>
</li>

我尝试使用的代码是

driver.findElement(By.linkText("Search")).click();

我也试过: driver.findElement(By.partialLinkText("Search")).click();

我还尝试运行返回的 IDE: // 错误:捕获异常 [错误:不支持的命令 [waitForPopUp | _空白| 30000]]

driver.findElement(By.cssSelector("li[title=\"Search\"] > a > span")).click();

上面的代码也不行。

我不确定这是否有所不同,但为了进入该页面,加载了一个新标签。

【问题讨论】:

  • 是的,加载新标签会有所不同。 :D 你为什么要打开一个新标签,有必要吗?
  • 我第一次发布它时没有通过。上面的html够不够?
  • 是的,这就是我登录后我的 UAT 环境的加载方式。

标签: java html selenium-webdriver


【解决方案1】:

你需要切换到新标签

// get original tab handle
String currentHandle = driver.getWindowHandle();

// open the new tab here

// switch to the new tab
for (String handle : driver.getWindowHandles()) {
    if (!handle.equals(currentHandle))
    {
        driver.switchTo().window(handle);
    }
}

driver.findElement(By.linkText("Search")).click();

// close the new tab and switch back to the old tab
driver.close();
driver.switchTo().window(currentHandle);

【讨论】:

  • 工作就像一个魅力。你真棒。谢谢:)
【解决方案2】:

你可以试试下面的代码:

driver.findElement(By.xpath("//span[contains(text(), 'Search')]")).click();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多