如何用硒找到svg元素?
How to find svg element with selenium?
我正在构建一个 python Instagram 机器人,我试图让它点击 DM 图标,但我不确定如何 select 它。
我尝试通过 Xpath selecting,但我似乎无法将它导航到图标。
这是 Instagram 的 html DM 图标代码:
<svg aria-label="Messenger" class="_8-yf5 " color="#262626" fill="#262626" height="24" role="img" viewBox="0 0 24 24" width="24">
感谢任何帮助。
您必须应用稍微不同的定位器策略才能找到 svg
。
这是有效的方法:
driver.find_element(By.XPATH, "//*[name()='svg']")
假设这是唯一的 svg 元素(在您的查询中提供)
来自同一 DOM 行的多个属性的组合:
//*[name()='svg' and @aria-label='Messenger']
所需的元素是 svg element so to on the element you have to induce WebDriverWait for the and you can use either of the following :
使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "svg[aria-label='Messenger']"))).click()
使用 XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[name()='svg' and @aria-label='Messenger']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
参考资料
您可以在以下位置找到关于 的一些相关讨论:
我正在构建一个 python Instagram 机器人,我试图让它点击 DM 图标,但我不确定如何 select 它。
我尝试通过 Xpath selecting,但我似乎无法将它导航到图标。 这是 Instagram 的 html DM 图标代码:
<svg aria-label="Messenger" class="_8-yf5 " color="#262626" fill="#262626" height="24" role="img" viewBox="0 0 24 24" width="24">
感谢任何帮助。
您必须应用稍微不同的定位器策略才能找到 svg
。
这是有效的方法:
driver.find_element(By.XPATH, "//*[name()='svg']")
假设这是唯一的 svg 元素(在您的查询中提供)
来自同一 DOM 行的多个属性的组合:
//*[name()='svg' and @aria-label='Messenger']
所需的元素是 svg element so to
使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "svg[aria-label='Messenger']"))).click()
使用 XPATH:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[name()='svg' and @aria-label='Messenger']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考资料
您可以在以下位置找到关于