【问题标题】:How to get element which don't have a class name and a id using selenium webdriver如何使用 selenium webdriver 获取没有类名和 id 的元素
【发布时间】:2020-09-06 06:17:24
【问题描述】:

HTML:

<a title="ITC" href="javascript:void(0);" onclick="TPComView(&quot;2020-2021&quot;,&quot;39&quot;);">ITC</a>

我尝试使用 cssSelector 和 xpath,但它显示如下错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    要定位元素,您可以使用titleonclick 或/和innerText 属性,您可以使用以下任一Locator Strategies

    • 使用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() 诱导WebDriverWait 的元素,您可以使用以下任一Locator Strategies

    • 使用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
      

    参考文献

    您可以在NoSuchElementException 中找到一些相关讨论:

    【讨论】:

    • 我试过你的方法,它给了我 selenium.common.exceptions.TimeoutException: Message:
    【解决方案2】:

    您可以使用 find_element_by_xpath 函数。

    driver.find_element_by_xpath('//a[@href="'+url+'"]')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 2020-09-03
      • 2013-02-12
      相关资源
      最近更新 更多