【问题标题】:How to identify an element through classname even though there are multiple elements with the same classnames using Selenium and Python即使使用 Selenium 和 Python 有多个具有相同类名的元素,如何通过类名识别元素
【发布时间】:2020-09-20 22:04:00
【问题描述】:
<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" 而不是另一个。

【问题讨论】:

    标签: python selenium xpath css-selectors xpath-1.0


    【解决方案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']")
      

    【讨论】:

    • 在元素的类名之间加点的提示是无价的。
    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多