selenium webdriver 找到锚标记并单击它

2023-11-21

<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>

在此我需要找到并单击About使用 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 按钮可能会有所帮助。 因此,假设找到了元素,您可以尝试以下操作:

driver.findElement(By.linkText("About")).sendKeys(Keys.ENTER);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium webdriver 找到锚标记并单击它 的相关文章

随机推荐

  • 比较数组是否相等,忽略元素的顺序

    我有一个包含 4 个数组列的表 结果如下 ids signed ids new ids new ids signed 1 2 3 2 1 3 4 5 6 6 5 4 无论如何都要比较ids and signed ids通过忽略元素的顺序 使
  • 重新附加实体图并检测集合更改

    我首先使用实体 框架代码 并通过 WCF REST HTTP 接口公开 Northwind 数据库 我没有公开 OrderDetails 表 订单项 因为创建订单然后通过另一个服务单独添加每个所需的 OrderDetail 是没有意义的 在
  • 在 Rails 中使用带有 has_many 的委托?

    我们有 2 个模型和一个连接模型 app models message rb Class Message lt ActiveRecord Base has many image messages has many images throug
  • 如何对实体的自定义属性进行建模?

    假设我们有一个应用程序应该能够存储所有类型的产品 每个产品至少有一个ID and a Name但所有其他属性都可以由用户自己定义 例如 他可以创建一个产品组Ipods其中将包含属性capacity and 一代 例如 他可以创建一个产品组T
  • strstr 的优化版本(搜索具有恒定长度)

    我的 C 程序有很多 strstr 函数调用 标准库 strstr 已经很快 但在我的例子中 搜索字符串的长度始终为 5 个字符 我用一个特殊版本替换了它以获得一些速度 int strstr5 const char cs const cha
  • C# - 让 Process.Start 等待进程启动

    在继续使用方法之前 我需要确保进程正在运行 声明是 Process Start popup exe 您可以执行 WAIT 命令或对此值设置延迟吗 你的意思是等到完成吗 然后使用Process WaitForExit var process
  • Linq 表达式中的条件运算符导致 NHibernate 异常

    我正在尝试在 ASP NET MVC 2 应用程序中实现搜索功能 我根据用户输入的条件创建一个表达式 public ViewResult FindCustomer string forename string familyname Date
  • 奇怪的for循环问题

    我不确定这是否是一个错误 所以我想也许你们可能想看一下 问题出在这段代码上 for i 0 1 05 do print i end 输出应该是 0 05 1 snip 95 1 相反 输出是 0 05 1 snip 95 while 循环也
  • Laravel 5.5 具有不同列名的单独表的唯一验证规则

    所以我有用户和公司 一名用户属于一家公司 我想验证用户注册 以便business name他们用来注册的字段在companies表 目标是不允许用户创建重复的公司 这是我的注册功能 public function register Requ
  • 更改活动输入选择器的背景颜色

    任何原因为什么当我运行这段代码时 input type submit active background color green 当我单击所需的按钮时 它只会闪烁绿色一瞬间 然后返回到原始颜色 怎样才能让它永远保持绿色呢 input typ
  • 非常量引用绑定到临时的 Visual Studio bug?

    我在编译一些可移植代码时遇到了这个问题gcc 基本上这个奇怪的代码在 Visual Studio 中编译 这真的让我大吃一惊 class Zebra int x Zebra goo Zebra z return z void foo Zeb
  • Min-width, max-width css 使用最小宽度

    好吧 所以我希望做的是创建一个 DIV 它将根据其中的内容自动调整大小 但它应该使用尽可能小的宽度 我不知道如何做到这一点 所以 如果我有一个包含 3 个字符的 DIV 标签 其宽度无疑低于 200px 那么我想要的就是 div 为 200
  • pthread_mutex_lock.c:62: __pthread_mutex_lock: 断言 `mutex->__data.__owner == 0' 失败

    我收到了那个错误 pthread mutex lock c 62 pthread mutex lock 断言 mutex gt data owner 0 失败 我找不到任何原因 但是我不确定以下代码 声明 std mutex lock st
  • 如何使用 jquery 隐藏父元素?

    假设以下 HTML li class fooli a class foo href anchor a li li class fooli a class foo href anchor a li 和以下 Javascript 使用 jque
  • ASP.NET 的 JSON 最大长度问题

    我正在创建一个 asp net 2 0 Web 服务 它提供 json 作为输出 并且有一个非常大的 无法分解的数据集 超出了最大长度限制 我在互联网上搜索过 net 3 5 4 上有解决方案 但 2 0 上没有 谁能告诉我如何增加 JSO
  • Android Gradle Jacoco:用于集成测试的离线工具

    我们正在构建一个 Android 应用程序 并使用 Appium 进行测试 现在我想看看我们的 Appium 测试的测试覆盖率 我认为这是可能的 因为Jacoco支持离线检测 http www eclemma org jacoco trun
  • 如何在 Visual Studio Code 中以 noprofile 启动 Powershell 脚本

    如何在 Visual Studio Code 中以 noprofile 启动 Powershell 脚本 我可以使用 noprofile with 命令运行 Powershell IsePowerShell Ise NoProfile 但是
  • 厨师包装食谱最佳实践

    在学习厨师的过程中 我看到了包装食谱的相互冲突的模式 例如 一些食谱使用default rb 而另一些则使用customize rb进行覆盖 attributes default rb attributes customize rb 哪个是
  • (仍然)无法正确安装 python 的 lxml 2.3,但至少 2.2.8 可以工作

    2011年6月30日 我因为这个问题而奖励 Pablo 因为他answer 由于他的评论中讨论的原因 我仍然无法正确安装 lxml 2 3 我收集了一些可以做的工作 但我已经在这个问题上花费了大量的时间 不过 我已经编写了所需的代码并成功安
  • selenium webdriver 找到锚标记并单击它

    div ul class selectors modeSelectors li a href content l411846326l1213g references title span class selector References