【问题标题】:Why does firefox keep getting hungup after the fourth run through为什么firefox在第四次运行后总是挂断
【发布时间】:2021-10-08 22:35:54
【问题描述】:

我正在尝试创建一个机器人,它可以点击我网站上的链接、打开选项卡、关闭,然后继续循环。

然而,这在 4-5 周期后一直挂断。

我也无法弄清楚如何简单地关闭两个选项卡,然后再次获取 url 而不必退出。

对不起,如果这是非常基本的,我是新手。 :)

我正在使用 selenium,firefox webdriver

from time import sleep
from selenium import webdriver
from keyboard import press

while True:

browser = webdriver.Firefox()
browser.implicitly_wait(10)

browser.get('https://pridedogecoin.com/')

sleep(15)

login_link = browser.find_element_by_xpath('//*[@id="slider-6-slide-6-layer-13"]')
login_link.click()

sleep(5)

browser.quit()
sleep(15)

【问题讨论】:

    标签: python-3.x selenium selenium-webdriver selenium-firefoxdriver


    【解决方案1】:

    好的,你需要像下面这样切换到第一个选项卡,你也应该使用close 而不是quit,因为close 意味着kill current window instance,其中quitkill 所有browser instance :

    import time
    
    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.action_chains import ActionChains
    
    driver = webdriver.Firefox(executable_path = "D:\geckodriver.exe")
    driver.maximize_window()
    
    while True:
        driver.refresh()
        time.sleep(10)
        driver.get("https://pridedogecoin.com/")
        driver.implicitly_wait(60)
        wait = WebDriverWait(driver, 30)
        current_windows_handle = driver.current_window_handle
        wait.until(EC.element_to_be_clickable((By.ID, "slider-6-slide-6-layer-13"))).click()
        driver.switch_to.window(driver.window_handles[1])
        time.sleep(5)
        driver.close()
        driver.switch_to.window(current_windows_handle)
    

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 2013-02-18
      相关资源
      最近更新 更多