按text/sty单击页面上的链接

2024-06-10 06:56:05 发布

您现在位置:Python中文网/ 问答频道 /正文

目前正在浏览bet365.com网站,我有点停顿了。我关注的页面有以下URL;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\u 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()

……再加上无数次的尝试,这一次都做不到!我会非常感谢你的帮助


Tags: divbrowsercom链接页面elementfind会议
1条回答
网友
1楼 · 发布于 2024-06-10 06:56:05

我不得不点击我的方式,通过赛马,然后使用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()

相关问题 更多 >