我有一个关于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可能更容易?
我希望有人能提供帮助。
答案 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?
中找到相关的讨论