使用Selenium和Python,即使有多个元素的类名相同,如何通过类名来识别一个元素?

问题描述 投票:0回答:2
<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-tab="1",我如何指定有data-tab="1 "的那个而不是另一个。

python selenium xpath css-selectors xpath-1.0
2个回答
1
投票

由于 阶层 属性的两个元素都包含类似的值,你将无法区分它们,只能通过 阶层 属性,你可能还需要考虑其他一些属性。

要识别第一个元素,你可以使用以下任何一种方法。定位策略:

  • 使用 css_selector 与...一起 数据条 属性。

    typing = bot.find_element_by_css_selector("div.copyable-text.selectable-text[data-tab='1']")
    
  • 使用 xpath 与...一起 数据条 属性。

    typing = bot.find_element_by_xpath("//div[contains(@class, 'copyable-text') and @data-tab='1']")
    
  • 使用 xpath 与...一起 数据条 属性。

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

0
投票

为了最简单的使用(因为你是初学者),在浏览器中加载页面,然后选择 "我"。div 并复制 full xpath 看起来像这样 /html/body/div[3]/div[2]/div/div[1]/div[3]/div[3]/form/div[1]/div[1]/div/div[1]/ul/li[18]这可以解决你的问题.希望对你有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.