python与selenium使用chrome浏览器在函数内调用该函数后浏览器自动关闭问题
时间:2021-07-22
本文章向大家介绍python与selenium使用chrome浏览器在函数内调用该函数后浏览器自动关闭问题,主要包括python与selenium使用chrome浏览器在函数内调用该函数后浏览器自动关闭问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
test.py
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.baidu.com") # 搜索输入框 search_input = driver.find_element_by_id("kw") # 搜索selenium search_input.send_keys("selenium") # 搜索按钮 search_button = driver.find_element_by_id("su") # 点击搜索按钮 search_button.click()
浏览器窗口不会自动关闭
elementLocator.py
from selenium import webdriver import time class elementLocator(): def __init__(self): self.driver= webdriver.Chrome() self.driver.get("http://www.baidu.com") self.driver.maximize_window() #xpath定位 def elementLocator_xpath(self): #定位到登录按钮 login_button = self.driver.find_element_by_xpath("//a[@id='s-top-loginbtn']") #相对定位 #login_button = self.driver.find_element_by_xpath("/html/body/div/div/div[4]/a") #绝对定位(不建议) #点击登录按钮 login_button.click() elementLocator().elementLocator_xpath()
结果:浏览器自动关闭
原因:在函数内执行的浏览器操作,在函数执行完毕之后,程序内所有的步骤都结束了,关于这段程序的进程也就结束了,浏览器包含在内;如果将浏览器全局后,打开浏览器不在函数内部,函数里面的程序执行完是不会关闭浏览器的。
解决方法:
设置option.add_experimental_option("detach", True)不自动关闭浏览器
from selenium import webdriver import time class elementLocator(): def __init__(self): # 加启动配置 option = webdriver.ChromeOptions() # 关闭“chrome正受到自动测试软件的控制” # V75以及以下版本 # option.add_argument('disable-infobars') # V76以及以上版本 option.add_experimental_option('useAutomationExtension', False) option.add_experimental_option('excludeSwitches', ['enable-automation']) # 不自动关闭浏览器 option.add_experimental_option("detach", True) self.driver= webdriver.Chrome(chrome_options=option) self.driver.get("http://www.baidu.com") self.driver.maximize_window() #xpath定位 def elementLocator_xpath(self): #定位到登录按钮 login_button = self.driver.find_element_by_xpath("//a[@id='s-top-loginbtn']") #相对定位 #login_button = self.driver.find_element_by_xpath("/html/body/div/div/div[4]/a") #绝对定位(不建议) #点击登录按钮 login_button.click() time.sleep(4) self.driver.close() elementLocator().elementLocator_xpath()
参考连接:https://blog.csdn.net/qq_43422918/article/details/97394705
原文地址:https://www.cnblogs.com/XiqueBlogs/p/15044383.html
- InfoPath中repeating section中赋值操作
- 百布(baibu.la)完成1.65亿B+轮融资
- 八大排序算法总结与java实现
- Angular企业级开发(5)-项目框架搭建
- 如何让nginx显示文件夹目录
- Facebook Graph API(2)--读取数据之picture
- 使用Dockerfile构建镜像-Docker for Web Developers(5)
- 2018年程序员的出路有哪些
- CSS魔法堂:不得不说的Containing Block
- Facebook Graph API(1)—介绍
- MongoDB学习系列(1)--入门介绍
- 2018年人工智能行业市场预测:市场规模有望突破200亿元大关
- Javascript对象的方法赋值
- CentOS挂载硬盘
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【C语言简单说】三:变量总结ASCII码扩展(5)
- 【C语言简单说】四:常量
- 【C语言简单说】五:常用运算符
- 【C语言简单说】六:取模运算符以及变量的扩展
- 【C语言简单说】七:自定义函数(1)
- 【C语言简单说】七:自定义函数(2)
- 【C语言简单说】七:自定义函数(3)
- 【C语言简单说】八:分支结构之if(1)
- 【C语言简单说】八:分支结构之if...else...(2)
- 【C语言简单说】八:分支结构之if...else if()...else...(3)
- 【C语言简单说】九:输入
- 【C语言简单说】十:小结
- 【C语言简单说】十一:switch 补
- 【C语言简单说】十二:逻辑运算符&&
- 【C语言简单说】十三:逻辑运算符||