当前位置: 首页 > 面试题库 >

selenium webdriver查找锚标记并单击

毋宪
2023-03-14
问题内容
<div id="ContentPrimary">
<ul class="selectors modeSelectors">
    <li><a href="/content/l411846326l1213g/references/" title="">
        <span class="selector">References (27)</span></a></li>
    <li><a href="/content/l411846326l1213g/referrers/" title="">
        <span class="selector">Cited By (2)</span></a></li>
    <li><a href="/content/l411846326l1213g/export-citation/" title="">
        <span class="selector">Export Citation</span></a></li>
    <li><a href="/content/l411846326l1213g/about/" title="">
        <span class="selector">About</span></a></li>
</ul>

在这种情况下,我需要使用Selenium api 查找并单击“ 关于” 链接,但无法执行此操作。

我所做的是

wait.until(new ExpectedCondition<Boolean>() {
    public Boolean apply(WebDriver webDriver) {
        System.out.println("Searching ...");
        String s = driver.findElement(By.cssSelector("#ContentPrimary ul li[4] span.selector")).getText();
        System.out.println(s);
        if (Pattern.compile(Pattern.quote("About"), Pattern.CASE_INSENSITIVE).matcher(s).find()) {
            return true;
        } else {
            return false;
        }
    }
});
driver.findElement(By.linkText("About")).click();

但它不起作用


问题答案:

以我的经验,Selenium API在这种方式上有很多缺陷。通常只能通过重新选择选择器来克服它们。例如,您可以尝试使用XPath选择器来获取元素:

driver.findElement(By.xpath("//a[contains(.,'About')]")).click();

另外,如果您尝试使用Internet
Explorer,则可能不会单击该元素而是模拟按下Enter键来帮助您。因此,假设找到了Element,则可以尝试以下操作:

driver.findElement(By.linkText("About")).sendKeys(Keys.ENTER);


 类似资料:
  • 问题内容: 在我的随机测试中,我看到了一种将锚标签放在另一个锚标签内的行为。我做了一个jsfiddle。 但是在开发人员工具中,它看起来有所不同: 我相信我们不能将锚标记放在另一个锚标记内,因为单击内部锚会导致click事件冒泡到父锚标记,这是不允许的。 我的假设正确吗? 问题答案: aHTML语法禁止嵌套元素。HTML规范没有说明原因;他们只是强调规则。 从实际的角度来看,浏览器会在其解析规则中

  • 我正在阅读XML并解析它,希望更新XML中的所有锚标记:在上面的例子中,我希望在一个标记中附加域名。如果href属性不是以HTTPS、HTTP或www开头。我想将基URL追加到href属性。 怎么做?

  • 在我的随机测试中,我看到了一个行为,我把一个锚标签放在另一个锚标签里。我做了一个jsfiddle。 但在开发人员工具中,它似乎有所不同: 我相信我们不能将锚定标记放在另一个锚定标记内,因为单击内部锚定将使单击事件冒泡到父锚定标记,这是不允许的。 我的假设正确吗?

  • 使用Ruby、Capybara、Selenium、Cucumber、XPath等在我的自动化项目中查找元素并单击的最佳方式是什么。 我需要单击并展开的HTML元素(equal accordion)是: 我目前使用XPath命令查找元素并单击,但效果不太好,因为它正在查找元素,但有时单击,有时不单击。

  • 我想找到一个标题包含字符串的锚 这就是我所拥有的: 我需要抓住这些锚。我只知道他们的书名里有Permalink这个词。标题的其余部分各不相同。 我试过这个: 我希望得到元素,但什么也得不到。

  • 我创建了一个wordpress菜单,其中一个菜单项的类为“wishlist”。使用wordpress“wp_nav_menu_items”过滤器,我可以在一个长字符串中获得所有菜单项的整个标记: 我正在寻找使用php的最佳方法,首先只找到带有类“愿望清单”的菜单项,然后在该菜单项中插入一些自定义标记。然后在返回之前将更新的标记添加回$项目字符串。 以下是$项目字符串的输出: