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

selenium click() 无法关闭弹出窗口

selenium click() 无法关闭弹出窗口

胡子哥哥 2024-01-16 15:16:31
为了学习硒,我一直在开发一个假的“投注机器人”,但我无法关闭有时会出现在我想从中获取赔率的网站上的弹出窗口。我的方法是使用该函数submit_bets();过滤后的游戏列表,格式为:"League|team 1|team 2|Date|Probability in %|and prediction(1,X or 2)"我从这里获取数据。然后,对于每场过滤后的比赛,我打开投注网站上的联赛投注页面,浏览那里的所有比赛以找到过滤后的比赛并获得真实赔率。对于filtered_games 中的每个过滤游戏,我需要打开投注网站的页面,如果出现弹出窗口,我无法获取数据。def submit_bets(filtered_games):driver = webdriver.Chrome(PATH)f=codecs.open("bets.txt","r", encoding='utf-8')for line in filtered_games:    l=line.split("|")    print(l)    driver.get(leagues_to_links.get(l[0]))    scroll_down(driver)    time.sleep(2)    try:        button = driver.find_element(By.XPATH, "/html/body/div[1]/div/section[2]/div[7]/div/div/div[1]/button" )        driver.execute_script("arguments[0].scrollIntoView(true)", button)        button.click()    except:        print("no button")    games=driver.find_elements_by_class_name("events-list__grid__event")    for i in games:        game=str(i.text).split("\n")        try:            if forebet_teams_to_betano.get(l[1]) in game[2] and forebet_teams_to_betano.get(l[2]) in game[3]:                print(game)                if str(l[5]) == "1":                    print("1")                    print(str(game[7]))                elif str(l[5]) == "X":                    print("X")                    print(str(game[9]))                else:                    print("2")                    print(str(game[11]))        except:            print("")在此链接中,您可以找到弹出窗口出现时页面的 html:带有 html 的 Github 页面在此链接中您可以找到页面文件,有时您可能需要刷新才能弹出感谢您抽出时间,并随时留下任何建议来改进我的代码。
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

我的解决方案:


#Closing popup for Portugese betting site


from selenium import webdriver

from selenium.webdriver.firefox.options import Options


URL = "https://www.betano.pt/sport/futebol/ligas/17083r/"    


# Browser options

options = Options()

options.headless = True

firefox_profile = webdriver.FirefoxProfile()

firefox_profile.set_preference("browser.privatebrowsing.autostart", True)


browser = webdriver.Firefox(firefox_profile=firefox_profile)

browser.get(URL)


##### Copy this part into your own code #####

try:

    browser.find_element_by_xpath('//button[@class="sb-modal__close__btn uk-modal-close-default uk-icon uk-close"]').click() # Click pop-up close button

    print("Pop-up closed.")

except:

    print("Pop-up button not found.")

#########

关闭此弹出窗口:

https://img1.sycdn.imooc.com/65a62d9d000166d712841060.jpg

请记住,这依赖于通过非常具体的类名称来查找按钮。您需要将最后的 try- except 调整为您自己的代码。



查看完整回答
反对 回复 2024-01-16
  • 1 回答
  • 0 关注
  • 30 浏览
慕课专栏
更多

添加回答

举报

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