【问题标题】:Selenium Python click link on page by text/styleSelenium Python 按文本/样式单击页面上的链接
【发布时间】:2020-02-16 04:05:42
【问题描述】:

目前正在浏览 bet365.com 网站,我遇到了一些停顿。我关注的页面有以下网址; https://www.bet365.com/#/AS/B2/.

此页面列出了当天的所有赛马...我希望单击其中一个链接。源 html 可以在下面找到;

< div class ="slm-RaceMeeting slm-RaceMeeting_Uk " > 
  < div class ="slm-MeetingHeader " > 
    < div class ="slm-MeetingHeader_LeftContainer " > 
      < div class ="slm-MeetingHeader_RaceName " style="" > Ascot < / div > 
< div class ="slm-RaceMeeting slm-RaceMeeting_Uk " > 
< div class ="slm-RaceMeeting slm-RaceMeeting_Uk " > 
< div class ="slm-RaceMeeting slm-RaceMeeting_Uk " > 
< div class ="slm-RaceMeeting slm-RaceMeeting_Uk " > 

所有比赛名称都包含在 class= "slm-RaceMeeting slm-RaceMeeting_Uk "中,但我找不到任何可单击以导航到所需会议的按钮或链接(例如导航到 ascot 会议)。

我尝试了以下点击;

browser.find_element_by_xpath("//*[contains(concat( " ", @class, " " ), concat( " ", "slm- 
MeetingHeader_RaceName", " " ))]") .click()

browser.find_element_by_css_selector('.slm-MeetingHeader_RaceName').click()

...以及许多其他尝试,但无法解决这个问题!帮助将是惊人的,非常感谢

【问题讨论】:

  • 我无法查看该页面。但是你有没有试过找出这是否是由 javascript 调用的?

标签: python html selenium xpath beautifulsoup


【解决方案1】:

我必须点击我的方式进入赛马,然后使用如下所示的 xpath(我收集了该部分中的所有结果,可以点击不同时间的 Ascot)

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

d = webdriver.Chrome()
d.get('https://www.bet365.com/#/AS/B2/')
d.find_element_by_css_selector("a").click()
racing = WebDriverWait(d,5).until(EC.presence_of_element_located((By.XPATH, '//*[@class="wn-Classification " and contains(text(),"Horse Racing")]')))
url = d.current_url

while True:
    racing.click()
    if d.current_url !=url:  #might want to add timeout for this. Also, wait clickable doesn't seem to work. But explicit sleep does.
        break
results = d.find_elements_by_xpath('//*[@class="slm-MeetingHeader_RaceName " and contains(text(),"Ascot")]/ancestor::div[@class="slm-RaceMeeting slm-RaceMeeting_Uk "]//*[@class="slm-UkRacingCouponLink_RaceNameTime "]')
results[0].click()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多