如何使用Selenium WebDriver检索类内的react元素的属性?

时间:2018-08-16 06:32:17

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

这是HTML。我想使用python中的Selenium Webdriver从第四行的元素中检索值 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>

3 个答案:

答案 0 :(得分:0)

使用此代码

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

答案 1 :(得分:0)

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

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。

答案 2 :(得分:0)

根据 HTML ,您共享了所需的元素为React元素,因此您必须诱使 WebDriverWait 使元素可见,您可以使用以下任一解决方案:

  • CSS_SELECTOR

    myText = 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")
    
  • XPATH

    myText = 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")