繁体   English   中英

使用 python selenium 单击 class 中的跨度元素

[英]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 检查您提供的链接的 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的元素

过下

要单击带有文本保存的元素,您可以使用以下任一定位器策略

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

  • 使用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
  • 浏览器快照:

Over_Under

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM