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

为了学习硒,我一直在开发一个假的“投注机器人”,但我无法关闭有时会出现在我想从中获取赔率的网站上的弹出窗口。

我的方法是使用该函数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 页面

在此链接中您可以找到页面文件,有时您可能需要刷新才能弹出

感谢您抽出时间,并随时留下任何建议来改进我的代码。


胡子哥哥
浏览 38回答 1
1回答

MM们

我的解决方案:#Closing popup for Portugese betting sitefrom selenium import webdriverfrom selenium.webdriver.firefox.options import OptionsURL = "https://www.betano.pt/sport/futebol/ligas/17083r/"    # Browser optionsoptions = Options()options.headless = Truefirefox_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.")#########关闭此弹出窗口:请记住,这依赖于通过非常具体的类名称来查找按钮。您需要将最后的 try- except 调整为您自己的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python