无法在 Selenium 和 Java 中使用 className 定位元素

2023-12-02

我想使用 Selenium 中的类名来定位网页的元素。这是我尝试过的网络元素:

<button class="signup-button b green">Get Started!</button>

当我尝试这种方式时,我无法找到该按钮;

driver.findElement(By.className("signup-button")).click();

但是,使用如下所示的 css 选择器,它可以工作;

driver.findElement(By.cssSelector("button.signup-button")).click();

有时工作有时不工作是什么原因?


因为您能够找到以下元素:

<button class="signup-button b green">Get Started!</button>

using:

driver.findElement(By.cssSelector("button.signup-button")).click();

但无法使用以下方法找到相同的元素:

driver.findElement(By.className("signup-button")).click();

那是因为还有其他元素在HTML DOM with 班级名称 as signup-button甚至在所需的元素之前,这可能是无形的通过设计。

理想情况下,您还应该能够使用xpath based 定位策略:

driver.findElement(By.xpath("//button[@class='signup-button' and text()='Get Started!']")).click();

最佳实践

但根据最佳实践,您需要使用WebDriver等待为了elementToBeClickable()您可以使用以下任一方法定位策略:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.signup-button"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='signup-button' and text()='Get Started!']"))).click();
    

参考

您可以在以下位置找到一些相关讨论:

  • NoSuchElementException,Selenium 无法定位元素
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Selenium 和 Java 中使用 className 定位元素 的相关文章

  • Java 8 可选

    我想检查特定对象大小是否大于 0 如果它大于 0 那么我想创建一个可选对象 如果不是 那么我想返回一个可选的空对象 这是java代码的长版本 if fooA size gt 0 return Optional of new Foo else
  • Java 比 Xmx 参数消耗更多内存

    我有一个非常简单的 Web 服务器类 基于 Java SEHttpServer class 当我使用此命令启动编译的类来限制内存使用时 java Xmx5m Xss5m Xrs Xint Xbatch Test 现在如果我使用检查内存top
  • 如何创建仅接受字母数字字符的正则表达式? [复制]

    这个问题在这里已经有答案了 可能的重复 字母数字和下划线的正则表达式 https stackoverflow com questions 336210 regular expression for alphanumeric and unde
  • 如何从球衣服务端点发送实体列表?

    我正在从球衣服务器发送实体列表 在客户端 我试图获取这些实体列表 但它给了元帅例外 为什么它在元素名末尾添加 s 即 emps 而不是 emp XmlRootElement public class Emp Server side code
  • 在 JList 中写一些东西

    嘿 我还有另一个问题 我创建JList在我的主窗口中 现在我想向其中添加一些内容 我这样做 private void jButton2ActionPerformed java awt event ActionEvent evt Dodaj
  • 如何确定 JDialog 显示在哪个屏幕上

    我有一个非常大的应用程序 有多个对话框 我的任务是确保不完全可见的对话框 因为用户将其从可见屏幕区域拉出 移回屏幕中心 当我只处理一个屏幕时 这没问题 它工作得很好 但是 该应用程序的大多数用户的桌面上都有两个屏幕 当我尝试找出对话框显示在
  • 在 alpine / Jprofile 10 中运行 jpenable 时出现 UnsatisfiedLinkError

    当运行 jpenable 以允许在运行 JDK 8 的 alpine 3 3 容器中对 Jprofiler10 进行分析时 我收到 UnsatisfiedLinkError 异常 有任何想法吗 ERROR The agent could n
  • #文档是什么意思?

    这是我的 HTML 文件 我正在尝试使用Selenium Webdriver API随着Chrome驱动程序 to send keys to an input归档内 但我无法访问其中的任何内容 document 我不明白为什么 有人可以告诉
  • 如何在 SpringBoot v3.0.0 中使用嵌入式 MongoDB?

    我正在尝试连接嵌入式 mongodb 并使用 MongoDbSpringIntegrationTest 对其进行测试 问题是相同的代码在 2 7 7 中适用于 spring boot 但在 3 0 0 中不适用于 spring boot 问
  • 如何防止我的 servlet 被其他网站调用

    好的 我有一个像这样的简单的 servlet public class SimpleServlet extends HttpServlet public void doPost HttpServletRequest req HttpServ
  • 如何在不冒 StackOverflowError 风险的情况下使用 CompletableFuture?

    我想遍历异步函数的搜索空间 我将逻辑编码如下 Assuming that a function maps a range of inputs to the same output value minimizes the input valu
  • String.intern() 线程安全吗

    我想在Java中使用 String intern 来节省内存 对具有相同内容的字符串使用内部池 我从不同的线程调用这个方法 这是个问题吗 对你的问题的简短回答是肯定的 它是线程安全的 但是 您可能需要重新考虑使用此工具来减少内存消耗 原因是
  • 更改JavaFX TableView字体大小[重复]

    这个问题在这里已经有答案了 您好 我想在表视图列内的文本上设置字体 我如何用 Java 做到这一点 这是我的代码 感谢帮助 private final TableView
  • 用二进制数、常规数字和格雷编码填充矩阵

    我有一个包含 1 s 或 0 s 的矩阵 用于创建二进制数 其宽度为n 对于 n 2 和 n 3 它看起来像 00 000 01 001 10 010 11 011 100 101 110 111 等等 现在我正在使用以下代码来生成它 in
  • 在 Hibernate 的 XML 配置文件中指定默认值

    我通过映射配置文件配置 Hibernate
  • Java 日期和 MySQL 时间戳时区

    我正在编辑一段代码 其基本功能是 timestamp new Date 然后坚持下去timestamp中的变量TIMESTAMPMySQL 表列 然而 通过调试我看到Date显示在正确时区的对象 GMT 1 当持久化在数据库上时 它是GMT
  • Java无损保存原始JPEG

    如下所示 我有第一张图像是原始 JPEG 图像 第二张图像用于缓冲图像 然后使用保存http www lac inpe br JIPCookbook 6040 howto compressimages jsp http www lac in
  • 原子整数的compareandexchange()与compareandset()

    在研究 AtomicInteger 时 我发现这个 API 提供了两种方法 比较和交换 如果当前值被引用 则自动将该值设置为 newValue to 作为见证值 预期值 记忆效应为 由指定VarHandle compareAndExchan
  • 优雅地避免 Java 中的 NullPointerException

    考虑这一行 if object getAttribute someAttr equals true 显然这一行是一个潜在的错误 属性可能是null我们会得到一个NullPointerException 因此我们需要将其重构为以下两个选择之一
  • 当框架被拖动时,如何设置 JWindow 的位置位于文本字段下方?

    我正在制作一个自动完成项目 就像谷歌一样 我的框架中有一个 jtextfield 每当我在该字段中输入内容时 该文本字段下方就会出现一个 JWindow 并且该窗口来自另一个类 现在的问题是 每当我拖动框架时 如何使窗口始终出现在文本字段下

随机推荐

  • 如何从Google Play商店获取应用市场版本信息?

    如何从 Google Play 商店获取应用程序版本信息 以便在 Play 商店应用程序更新时提示用户强制 建议更新应用程序 即用户使用旧版本应用程序时 我已经经历过android 市场 api这不是官方方式 并且还需要授权登录来自谷歌的身
  • 类将数据成员存储在顺序内存中?

    这个问题的简短版本 指向类的第一个数据成员的指针是否会导致指向其所有数据成员的指针 讨论 我正在阅读一些示例代码 这很有趣 当一个特定的函数 在本例中是glUniformMatrix4fvOpenGL 中的 C 函数 将数组作为参数 这是使
  • Javascript 模式:条件事件处理程序

    给定例如某种类实例具有状态 例如 活动 非活动 该实例还附加了一个点击事件 例如一个链接 但事件处理程序根据实例的状态执行不同的操作 伪代码 IF instance state IS active AND link is clicked T
  • 在 iOS 上通过 FCM 使用丰富推送通知中的数据

    我的问题可能很糟糕 但我在任何地方都找不到任何答案 我迷路了 所以我想在 iOS 10 中显示带有漂亮图像的丰富通知 为此 我使用 FCM 和 UNNotificationServiceExtension 如果我理解正确的话 它应该获取数据
  • 无法共同创建对象/找不到绰号 |雅各布

    当创建一个ActiveXComponent使用 JACOB 我收到以下错误 com jacob com ComFailException Can t co create object at com jacob com Dispatch cr
  • MF SinkWriter 写入样本失败

    我正在尝试使用 MediaFoundation 将 ID3D11Texture2D 编码为 mp4 下面是我当前的代码 初始化接收器写入器 private int InitializeSinkWriter String outputFile
  • 关于Linux的二进制兼容性

    如果我在 Ubuntu 上得到一些由 GCC 4 8 构建的 C 代码 该代码没有 GUI 界面 仅调用标准 Linux 库 那么该二进制文件可以在 RHEL 5 6 上完美运行 并且可以与更旧的 GCC 一起完美运行吗 一般情况下是不能的
  • 返回包含文件的目录

    R 中是否有命令可以返回包含正在执行的代码的文件的完整目录路径 类似于 PHP 的命令 SERVER SCRIPT FILENAME 我可以想到三个答案 但没有一个答案可能让您完全满意 因为 R 执行模型与 PHP 不同 按顺序排列 a R
  • 您可以从 .Net Microsoft Graph API 获取 PR_TRANSPORT_MESSAGE_HEADERS 0x007D 吗?

    我们使用别名电子邮件地址来将收到的电子邮件与客户进行匹配 所有别名地址都会传送到一个主邮箱中 ToRecipients 中未列出别名地址 如果我在 OWA 中打开电子邮件并查看邮件详细信息 我可以在邮件标头的 收件人 属性中看到别名 我尝试
  • Postgresql 使用 like 选择数组重叠的位置

    是否可以确定是否ARRAY列包含来自另一个数组的重叠值LIKE clause The 运算符有效 但字符串必须完全匹配 q select from articles where keywords mortgage brokers Exact
  • 如何使用 Microsoft Graph API 更新 SharePoint 列表中的人员或组列的值?

    我的情况 我正在使用微软图形API 测试版 更新 SharePoint ListItems 但是 我无法更改 个人或组 列的值 该列具有 允许多项选择 属性 并接受个人和组 这是它作为 ListItem columnSet 的一部分的样子
  • Powershell 和 cmd 环境变量

    我使用批处理脚本来设置该 shell 的一些本地环境变量 当我从该命令提示符启动 PowerShell 时 我期望这些环境变量在 PowerShell 脚本中可用 但我不认为这种情况会发生 有人可以帮助我我所缺少的吗 这些环境变量应该存在于
  • facebook 的社交登录在 ASP.Net MVC 5 项目中不起作用

    我正在学习在我的示例网站中实现 facebook 社交日志的教程 以下是我所做的步骤 将我的本地主机应用程序指向 https 并允许在 VS 中使用假 SSL 在 Facebook 开发者网站上创建了一个 Web 应用程序 并记下密钥和 I
  • 父母和孩子之间的沟通

    新手问题 在 Unix 上 在具有父级和一些子级的程序中 家长如何提醒孩子有效率的做一些工作 或者孩子们如何等待父母信号开始做一些工作 EDIT 该程序尝试并行执行复杂的计算 我已经使用共享内存作为所有子项的公共工作区来更新结果和数据传输
  • 如何在条形图上制作垂直角? [复制]

    这个问题在这里已经有答案了 有没有一种简单的方法可以将圆角放置在 D3 垂直条形图中的条形顶部 我一直在使用 attr rx 3 这似乎会影响 Bar 的所有四个角 您无法指定要在 SVG 中圆化哪些角 rx将影响所有 4 个角 唯一的解决
  • 从 URL Google 地图获取经纬度

    我需要一种方法来找出谷歌地图中提供其链接的地点的纬度 经度 或者 如果可能的话 我可以在地图上绘制应用程序内的点 或者使用某种意图共享谷歌地图的纬度经度 以便我可以从应用程序内接收它 上述任何一种可能是直接或间接的吗 简而言之 我有一个谷歌
  • iPhone 中的多人游戏 - 概念、策略、设计? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想为 iphone 开发一款在线多人游戏 我开发了两个 iPhone 应用程序 但它们不是游戏 所以这是我的第一个游戏 所以基本上我对在线多人游戏如何在iPhone上运行一无所
  • 计算数组逗号分隔值

    我正在使用此函数来获取 WordPress 中的自定义元字段数组 my var get meta values keywords if empty my var meta counts array foreach my var as met
  • 如何在私有和受保护访问修饰符之间进行选择以封装基类和子类之间的成员?

    我正在尝试一个在我的内部函数中使用私有值的项目 过去我只使用公共参数 但我注意到当使用尽可能多的私有参数时 混淆效果会更好 我的问题是关于家长 儿童课程 在我的主类中 我定义了所有参数如下 public class MyFatherClas
  • 无法在 Selenium 和 Java 中使用 className 定位元素

    我想使用 Selenium 中的类名来定位网页的元素 这是我尝试过的网络元素