如何使用 selenium webdriver 获取没有 class 名称和 ID 的元素
How to get element which don't have a class name and a id using selenium webdriver
HTML:
<a title="ITC" href="javascript:void(0);" onclick="TPComView("2020-2021","39");">ITC</a>
我尝试使用 cssSelector 和 xpath,但它显示如下错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
您可以使用find_element_by_xpath函数。
driver.find_element_by_xpath('//a[@href="'+url+'"]')
要定位元素,您可以使用 title
、onclick
or/and innerText
属性,也可以使用以下任一 :
使用link_text
:
element = driver.find_element_by_link_text("ITC")
使用css_selector
:
element = driver.find_element_by_css_selector("a[title='ITC'][onclick^='TPComView']")
使用xpath
:
element = driver.find_element_by_xpath("//a[@title='ITC' and text()='ITC']")
理想情况下,要找到需要为 visibility_of_element_located()
引入 的元素,您可以使用以下任一方法 :
使用LINK_TEXT
:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.LINK_TEXT, "ITC"))).click()
使用CSS_SELECTOR
:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a[title='ITC'][onclick^='TPComView']")))
使用XPATH
:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@title='ITC' and text()='ITC']")))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
参考资料
您可以在 中找到一些相关讨论:
HTML:
<a title="ITC" href="javascript:void(0);" onclick="TPComView("2020-2021","39");">ITC</a>
我尝试使用 cssSelector 和 xpath,但它显示如下错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
您可以使用find_element_by_xpath函数。
driver.find_element_by_xpath('//a[@href="'+url+'"]')
要定位元素,您可以使用 title
、onclick
or/and innerText
属性,也可以使用以下任一
使用
link_text
:element = driver.find_element_by_link_text("ITC")
使用
css_selector
:element = driver.find_element_by_css_selector("a[title='ITC'][onclick^='TPComView']")
使用
xpath
:element = driver.find_element_by_xpath("//a[@title='ITC' and text()='ITC']")
理想情况下,要找到需要为 visibility_of_element_located()
引入
使用
LINK_TEXT
:element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.LINK_TEXT, "ITC"))).click()
使用
CSS_SELECTOR
:element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a[title='ITC'][onclick^='TPComView']")))
使用
XPATH
:element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@title='ITC' and text()='ITC']")))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考资料
您可以在