使用Selenium时Chrome自动停止

bxjv4tth  于 2023-04-03  发布在  Go
关注(0)|答案(1)|浏览(198)

我正在使用基于类的方法通过selenium进行自动化任务。Chrome在加载页面后自动停止。这就是为什么添加“add_experimental_option(“detach”,True)”。但我无法在以下代码中使其工作。这是我的booking.py代码。

import booking.constant as const
from selenium import webdriver
import os

options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)

class booking(driver):
    def __init__(self, driver_path=r'C:\SeleniumDrivers'):
        self.driver_path = driver_path
        os.environ['PATH'] += self.driver_path
        super(booking, self).__init__()

    def land_first_page(self):
        self.get(const.base_url)

这种方法有效,但打开网页时Chrome会自动关闭。

class booking(webdriver.Chrome):
    def __init__(self, driver_path=r'C:\SeleniumDrivers'):
        self.driver_path = driver_path
        os.environ['PATH'] += self.driver_path
        super(booking, self).__init__()

主py文件
一个二个一个一个

ee7vknir

ee7vknir1#

你的后一种方法似乎很有效

class booking(webdriver.Chrome):
    def __init__(self, driver_path=r'C:\SeleniumDrivers'):
        self.driver_path = driver_path
        os.environ['PATH'] += self.driver_path
        super(booking, self).__init__()

    def land_first_page(self):
        self.get(const.base_url)

我只在向.get(url)方法传递不是以**https://http://**开始的URL时收到错误。因此请检查并确保您的const.base_url正确
如果不是这种情况,据我所知,selenium正在加载您的页面,当完成时,如果没有其他代码执行,那么主程序终止,所有其他进程也终止,包括selenium会话,因此浏览器关闭
好吧,如果你想保持浏览器打开,你可以通过在调用.land_first_page()方法后调用input()函数来冻结主线程,使其不会终止。

inst = booking()
inst.land_first_page()
input("press any key to continue...")

相关问题