我想抓住孩子的属性。我在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>
我需要的属性是&#34; producttypeid&#34;。
当我右键单击第一行并选择其选择器时,以下命令什么都不给我:
browser.find_element_by_css_selector("cssFromChrome").get_attribute("producttypeid")
当我右键单击第二行并选择它的选择器时,我得到的选择器是#lbl-80
,这对我来说不好,因为它是动态的,我需要一些静态来抓取该元素。
我还可以尝试获取该属性吗?
答案 0 :(得分:0)
其中一个选项是正则表达式匹配,如果id
始终以lbl-
唯一开头
browser.find_element_by_css_selector("ion-label[id^='lbl-']").get_attribute("producttypeid")
另一个选择是使用孩子
browser.find_element_by_css_selector(".input-wrapper > ion-label").get_attribute("producttypeid")
答案 1 :(得分:0)
根据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
属性,如下所示:
get_producttypeid("Item 1");
答案 2 :(得分:0)
怎么样:
element = browser.find_element_by_xpath("//*[contains(@id, 'lbl') and contains(text(), 'Item 1')]").get_attribute("producttypeid")