我正试图在python中编写一个selenium测试,在那里我需要启动一个seleselenium Web驱动程序并保持该驱动程序的活动状态,以便在其他函数(defs(中调用它来获取网页。
我尝试这样做是为了大大减少执行时间。
如有任何建议/见解,我们将不胜感激,谢谢大家。
更新
下面是一段示例代码来说明我正在努力实现的目标。理想情况下,我希望chromedriver在两个函数调用之间保持打开状态,以避免在有多个(50+(函数调用的情况下,必须将其拆下并重新启动chromedriver,这需要花费大量时间。
def chromedriver_function(url):
# Start Webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(chrome_options=options, executable_path="/opt/chromedriver")
driver.get(url)
return driver.page_source
def function1()
... do something
chromedriver_function("http://www.example.com")
def function2()
... do something
chromedriver_function("http://www.mysecondpage.com")
只需创建驱动程序并返回其值。然后使用此值作为参数调用函数
def create_driver():
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(chrome_options=options, executable_path="/opt/chromedriver")
return driver
def chromedriver_function(driver,url):
# Do whatever you want here
driver.get(url)
return driver.page_source
def function1(driver)
... do something
chromedriver_function("http://www.example.com")
def function2(driver)
... do something
chromedriver_function("http://www.mysecondpage.com")
并调用类似的函数
driver = create_driver()
function1(driver)
function2(driver)