如何使用selenium webdriver检索类中的react元素的属性?

问题描述 投票:0回答:3

这是HTML。我想在python中使用selenium webdriver从第4行的元素中检索值Unblock。请帮我一下。

<a class="btn btn-micro hasTooltip" 
    href="javascript:void(0);" 
    onclick="return listItemTask('cb0','users.unblock')" 
    title="" data-original-title="Unblock">
    <span class="icon-unpublish">
    </span>
</a>
python selenium selenium-webdriver xpath css-selectors
3个回答
0
投票

根据您共享的HTML,所需的元素是React元素,因此您必须引导WebDriverWait才能看到该元素,并且您可以使用以下任一解决方案:

  • CSS_SELECTORmyText = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.btn.btn-micro.hasTooltip[onclick*='users.unblock']"))).get_attribute("data-original-title")
  • XPATHmyText = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='btn btn-micro hasTooltip'][contains(@onclick,'users.unblock')]"))).get_attribute("data-original-title")

0
投票

使用此代码

driver.findElement_by_xpath("//a[@class='btn btn-micro hasTooltip']").get_attribute("data-original-title");

0
投票

如果要在元素中打印属性值,则必须使用getAttribute()方法。您可以使用此代码,您可以将其转换为Python,就像在JAVA中一样

WebElement eletext= driver.findElement(By.xpath("//a[@class='btn btn-micro hasTooltip']"));

String textElement = eletext.getAttribute("data-original-title");    
System.out.println(textElement);

区别:

getAttribute() - 它提取HTML标记中任何属性的文本。

getText() - 它提取WebElement的innerText。

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