python - 即使使用 Selenium 和 Python 有多个具有相同类名的元素,如何通过类名识别元素

标签 python selenium xpath css-selectors xpath-1.0

<div class="_2S1VP copyable-text selectable-text" data-tab="1" dir="ltr" spellcheck="true" contenteditable="true"></div>

<div class="_2S1VP copyable-text selectable-text" data-tab="3" dir="ltr" contenteditable="true"></div>

我是初学者,我很难区分/指定第一类和第二类

typing = bot.find_element_by_xpath('//div[@class = "_1Plpp"]')

这似乎不起作用,只使用类名总是会出现不需要的第二个具有相同类名的类名,我注意到它有 data-tab="3"而另一个有 data-标签=“1” 我将如何指定带有 data-tab="1"的那个而不是另一个。

最佳答案

由于两个元素的 class 属性包含相似的值,您将无法仅通过 class 属性来区分它们,您可能需要考虑一些其他属性。

要识别第一个元素,您可以使用以下任一命令 Locator Strategies :

  • 使用 css_selectordata-tab 属性:

    typing = bot.find_element_by_css_selector("div.copyable-text.selectable-text[data-tab='1']")
    
  • 使用 xpathdata-tab 属性:

    typing = bot.find_element_by_xpath("//div[contains(@class, 'copyable-text') and @data-tab='1']")
    
  • 使用 xpathdata-tab 属性:

    typing = bot.find_element_by_xpath("//div[contains(@class, 'selectable-text') and @data-tab='1']")
    

关于python - 即使使用 Selenium 和 Python 有多个具有相同类名的元素,如何通过类名识别元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62151967/

相关文章:

通过 Selenium IDE 测试嵌入式 HTML 表单

php - XPATH 获取当前节点的属性

java - 如何使用 Xpath Selenium WebDriver JAVA 获取多个元素(div)?

xml - Odoo 如何使用 xpath 移动到 'Quotaion Sent' 状态时使整个表单只读?

java - 如果将 commons-lang jar 添加到引用的库中,为什么我会收到此错误

python - 使用 scrapysplash 获取响应体

python - ModuleNotFoundError : No module named 'selenium'

python - 如何在python中从第k列开始删除具有空值的行

python - Django 按名称获取 url 正则表达式

javascript - 如何将驱动程序控制从顶部窗口切换到 iframe#mainFrame