为了账号安全,请及时绑定邮箱和手机立即绑定

陷入 for 循环 - 没有“下一步按钮”

陷入 for 循环 - 没有“下一步按钮”

动漫人物 2021-10-26 16:04:23
我正在尝试在 Rotogrinder/Resultdb 上抓取特定日期参加比赛的所有团队。但是,我刚刚意识到,当被抓取的比赛条目少于 50 个(只有一页)时,我的代码会停留在循环中,因为我通常使用下一步按钮退出该循环。这是我的代码:*** 我改三行直接去比赛,出现问题。#Packages:from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ecimport pandas as pdimport timefrom selenium.common.exceptions import NoSuchElementException# Driverchromedriver =("C:/Users/Michel/Desktop/python/package/chromedriver_win32/chromedriver.exe")driver = webdriver.Chrome(chromedriver)# DF taht will be use later results = pd.DataFrame()best_lineups=pd.DataFrame()opti_lineups=pd.DataFrame()#For loop over all DATES:CALENDAR=[]CALENDAR.append("2017-10-04")CALENDAR.append("2017-10-05")for d in CALENDAR:    driver.get("https://rotogrinders.com/resultsdb/date/"+d+"/sport/4/")       time.sleep(10)                try:                contest= driver.find_element_by_xpath("//*[@id='root']/div/main/main/div[2]/div[3]/div/div/div[1]/div/div/div/div/div[3]")              contest.click()        list_links = driver.find_elements_by_tag_name('a')        hlink=[]        for ii in list_links:            hlink.append(ii.get_attribute("href"))        sub="https://rotogrinders.com/resultsdb"        con= "contest"        contest_list=[]        for text in hlink:            if sub in text:                if con in text:                    contest_list.append(text)                    # comment next two lines and replace by following three to get directly to where the code keep looping                   #         for c in contest_list:#             driver.get(c)               c=contest_list[3:5]        for a in c:                        driver.get(a)                       n=1            while n<100:                  n+=1                time.sleep(10)        我怎么能解决这个问题?
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

try:

    next_button =  driver.find_elements_by_xpath("//button[@type='button']")

    next_button[2].click()    

 except NoSuchElementException:

    n = 100

    break

您的页面控制变量是n,将其设置为 100,while 循环将停止。


查看完整回答
反对 回复 2021-10-26
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

尝试使用webElement.isEnabled()和来检查按钮是否已启用webElement.isDisplayed()。这里有一个约可点击元素。



查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信