当前位置: 首页 > 知识库问答 >
问题:

为什么我不能使用类名找到元素?

富勇军
2023-03-14

我试图找到这个按钮并点击它。但我得到了这个错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".sqdOP  L3NKy   y3zKF     "}
  (Session info: chrome=87.0.4280.88)

我注意到它正在寻找不同的字符串'. sqdOP L3NKy y3zKF'bc它在类名前面添加了这个点。这是问题吗?

<button class="sqdOP  L3NKy   y3zKF     " type="button">Follow</button>

非常感谢。

共有2个答案

常茂
2023-03-14

如果classname值包含空格,Selenium无法通过点“”定位。您必须使用以下结构:

"[class='sqdOP  L3NKy   y3zKF     ']"

或者尝试使用XPath通过可见文本定位:

"//button[text()='Follow']"

如果您遇到元素单击拦截异常,请尝试通过JS单击,如下所示:

 public void executeClickJS(WebDriver driver, WebElement webElement) {
    ((JavascriptExecutor) driver).executeScript("arguments[0].click();", webElement);
  }
刘京
2023-03-14

如果没有具有相同类名的按钮,您也可以使用此方法定位它:driver.find_element_by_class_name("sqdOP")

Selenium不识别类名中的空格(除非你像Villa_7所说的那样),因为它们实际上是“复合类”(请参阅本文和本文)。我相信这与CSS有关。

仅供参考,这将有助于了解您当前如何尝试选择按钮的代码

 类似资料:
  • 我无法推到音频列表。重要提示:我不想将listOf更改为mutableListOf 虽然音频不是空的,但这不起作用。当我记录音频时,它给了我一个有数据的类,所以这不是问题所在。

  • 问题内容: 我在MS SQL Server 2012中有一个奇怪的问题。我正在尝试检查升级脚本中是否已存在外键。我过去使用过系统OBJECT_ID()函数来查找表,视图和过程,但是当我尝试使用它来查找外键时,它是行不通的。 问题答案: 可能是您的外键正在表中查找的不是默认模式(可能是)。在这种情况下,直到您指定架构,您才能看到以下内容: 实际上,您的数据库中可能有多个具有相同名称的对象,但它们位于

  • 问题内容: 我正在尝试打开一个保存在源文件夹本身中的CSV文件名“ logger.csv”。 但是,这一直在给我一个“找不到文件”错误。 问题答案: 如果您现在就使用相对路径,则该文件需要存在于项目根目录中, 而不是 存在于java文件的目录中。 考虑以下层次结构: 不管用。 将 现在 的工作。(注意,该文件与src目录相邻。)

  • 问题内容: 我正在构建一个脚本,该脚本必须修补XML文件,包括用一个元素列表替换另一个元素列表。以下函数将补丁(涉及到具有相同名称的元素的可能为空的列表)应用于父元素具有相同名称的元素的列表(也可能为空的列表)。(这只是修补逻辑的一小部分)。 为什么在运行代码时出现以下错误? (下面标记了514行。)据我了解,我刚刚验证了该元素存在(因为NodeList是活动的,因此它的第一个条目将始终是下一个匹

  • 从TensorArray读取: 使用: 问题: 回溯(最近一次调用last):RLU培训中第130行的文件“\main.py”。train()文件“C:\Users\user\Documents\Projects\rl toolkit\rl_training.py”,第129行,在train self中_rpm,赛尔夫。批量大小,自行确定。梯度步数,记录步数b=self。在call result=

  • 尝试将我的java应用程序从Eclipse导出到可运行的jar文件中。(这是一个控制台应用程序) 这是Eclipse中项目目录的外观: 以下是项目的运行配置: 这就是jar创建选项的外观: 最后,这是我得到的错误: 我真的试过了所有的东西,但我很困惑为什么它不运行。主类选择正确,运行配置似乎正确,我尝试了runnable和regular,两者都不起作用。 我尝试过清理、重建,甚至重新制作这个项目,