用 python selenium 单击 class 中的 span 元素

Clicking a span element in a class with python selenium

我正在尝试点击进入本网站的 Over/Under 部分: https://www.oddsportal.com/soccer/chile/primera-division/curico-unido-o-higgins-CtsLggl6/

HTML是:

            <li class=" active" style="display: block;"><span class="topleft_corner"></span><span class="topright_corner"></span><strong><span>Over/Under</span></strong></li>

我试过以下方法:

overunder=browser.find_element_by_link_text('Over/Under')

overunder=wait(browser, 5).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(), 'Over/Under']")))


overunder=browser.findElement(By.xpath("//span[contains(text(), 'Over/Under']"))

所有这些后跟 overunder.click()

然而所有的结果都是NosuchElementException

如何点击这个项目? 我正在尝试访问和抓取此部分后面的 Over/Under 个网站。

当我检查了您使用 selenium 提供的 link 的 page_source 时,这就是我得到的您正在寻找的区域:

<li class="" style="display: block;"><a onmousedown="uid(5)._onClick();return false;" title="Over/Under" href=""><span>O/U</span></a></li>

我用过

browser.find_element_by_css_selector("a[title='Over/Under']").click()

这对我有用。

我复制了完整的 xpath,这对我有用:

browser.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[6]/div[1]/div/div[1]/div[2]/div[1]/div[5]/div[1]/ul/li[5]/a").click()

我看到的是带有文本 Over/Under 的元素,而不是带有文本 O/U[= 的元素24=]

要单击文本为 save 的元素,您可以使用以下任一方法 :

  • 使用css_selector:

    driver.find_element(By.CSS_SELECTOR, "a[title='Over/Under'] > span").click()
    
  • 使用xpath:

    driver.find_element(By.XPATH, "//a[@title='Over/Under']/span[text()='O/U']").click()
    

理想情况下,要单击需要为 element_to_be_clickable() 引入 WebDriverWait 的元素,您可以使用以下任一方法 :

  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[title='Over/Under'] > span"))).click()
    
  • 使用XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@title='Over/Under']/span[text()='O/U']"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照: