Python Selenium Webdriver在“数据原始标题”中获取文本

时间:2019-09-10 07:13:15

标签: python selenium css-selectors webdriver webdriverwait

我有一个关于Selenium Webdriver的问题。

一切正常,但有一个我无法使用的要素。

当我检查元素时,这就是html标签:

<img src="https://s3.amazonaws.com/xxx/website/icons/rulesets/imgname.png" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="White Animals">

CSS选择器始终相同,但是"data-original-title"始终不同。我想在data-original-title之后寻找文字。在此示例中为“白色动物”。

try:
    element = WebDriverWait(driver, 1).until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, "CSSSELECTOR"), "White Animals"))
except:
    print("Not available")
else:
    print("found")

有人可以告诉我我在想什么吗?

img src也正在更改,因此解析img src可能更容易?

我希望有人能提供帮助。

2 个答案:

答案 0 :(得分:1)

您可以通过data-original-title属性进行搜索

element = WebDriverWait(driver, 1).until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, '[data-original-title="White Animals"]')))

答案 1 :(得分:-1)

要打印属性 数据原始标题,您必须为所需的visibility_of_element_located()引入 WebDriverWait ,您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "img[src*='com/xxx/website/icons/rulesets/imgname'][data-toggle='tooltip'][data-placement='bottom']"))).get_attribute("data-original-title"))
    
  • 使用XPATH

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//img[contains(@src, 'com/xxx/website/icons/rulesets/imgname') and @data-toggle='tooltip'][@data-placement='bottom']"))).get_attribute("data-original-title"))
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  

您可以在How to retrieve the title attribute through Selenium using Python?

中找到相关的讨论