如何在Python中使用Selenium Webdriver获取子属性?

2024-04-19 06:48:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着抓住一个孩子的特征。我在Chrome中检查我的元素,并看到以下代码:

<div class="input-wrapper">
  <ion-label style="text-overflow: ellipsis; display; block; overflow: hidden;white-space: nowrap;" class="label label-md" id="lbl-80" producttypeid="39553">Item 1</ion-label>

我需要的属性是“producttypeid”。在

当我右键单击第一行并选择它的选择器时,下面的命令没有给我任何提示: browser.find_element_by_css_selector("cssFromChrome").get_attribute("producttypeid")

当我右键单击第二行并选择它的选择器时,我得到的选择器是#lbl-80,这对我不好,因为它是动态的,我需要一些静态的东西来获取该元素。在

我还能用什么方法来抓住这个属性呢?在


Tags: 代码div元素属性孩子选择器特征chrome
3条回答

怎么样:

element = browser.find_element_by_xpath("//*[contains(@id, 'lbl') and contains(text(), 'Item 1')]").get_attribute("producttypeid")

如果id总是以lbl-唯一开头,那么其中一个选项是regex match

browser.find_element_by_css_selector("ion-label[id^='lbl-']").get_attribute("producttypeid")

另一个选择是使用孩子

^{pr2}$

根据HTML,如果要提取子级的producttypeid属性,可以编写如下函数:

def get_producttypeid(myString):
        print(driver.find_elements_by_xpath("//div[@class='producttypeid']/ion-label[@class='label label-md' and starts-with(@id,'lbl-')][.='" + myString + "']").get_attribute("producttypeid"))

现在,您可以从中调用带有所需项描述的get_producttypeid()方法,例如项1来检索producttypeid属性,如下所示:

^{pr2}$

相关问题 更多 >