当前位置: 首页 > news >正文

Selenium浏览器启动方式

Chromedriver所有版本下载
原文链接

浏览器的基本操作

  1. 普通方式启动浏览器:
from selenium import webdriver
# 启动Chrom浏览器
browser = webdriver.Chrome()
# 启动Edge浏览器
browser = webdriver.Edge()
# 启动Firefox浏览器
browser = webdriver.Firefox()
browser.get('http://www.baidu.com/')
  1. Headless方式启动(无界面启动)
    Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
chrome_options = webdriver.ChromeOptions()
# 使用headless无界面浏览器模式
chrome_options.add_argument('--headless') # 增加无界面选项
chrome_options.add_argument('--disable-gpu') # 如果不加这个选项,有时定位会出现问题
# 启动浏览器,获取网页源代码
browser = webdriver.Chrome(chrome_options=chrome_options)
mainUrl = "https://www.taobao.com/"
browser.get(mainUrl)
print(f"browser text = {browser.page_source}")
browser.quit()
  1. 加载配置文件方式启动
    Selenium默认是不加载配置启动,用Chrome地址栏输入chrome://version/,查看自己的“个人资料路径”,然后在浏览器启动时,调用这个配置文件,代码如下:
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('--user-data-dir=C:\Users\DELL\AppData\Local\Google\Chrome\User Data')# 设置成用户自己的数据目录
driver=webdriver.Chrome(chrome_options=option)

元素定位

  1. 常见的元素定位方式
#通过id方式定位
browser.find_element_by_id("kw").send_keys("selenium")
#通过name方式定位
browser.find_element_by_name("wd").send_keys("selenium")
#通过tag name方式定位
browser.find_element_by_tag_name("input").send_keys("selenium")
#通过class name方式定位
browser.find_element_by_class_name("s_ipt").send_keys("selenium")
#通过CSS方式定位
browser.find_element_by_css_selector("#kw").send_keys("selenium")
#通过xpath方式定位
browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
http://www.lryc.cn/news/193951.html

相关文章:

  • Linux 网络编程 tcp server 笔记
  • C语言-贪吃蛇 1.输入控制ncurse
  • Pytorvh之Vision Transformer图像分类
  • LabVIEW为什么不能在RT机箱内看到NI-IMAQ设备
  • three.js入门 ---- 相机控件OrbitControls
  • 数字IC/FPGA面试题目合集解析(一)
  • 20231014后台面经总结
  • RabbitMQ的七种工作模式和分别概述
  • 使用Vscode开发C#没有代码提示问题
  • 统信UOS 1060上通过Fail2Ban来Ban IP
  • Linux系统编程:文件描述符以及IO多路复用
  • python基于django的留学生服务管理平台
  • C++ 之 Map
  • MongoDB——centOS7环境Mongodb权限管理(图解版)
  • AndroidX项目接入穿山甲广告填坑
  • 汽车电子 - matlab - 用法
  • freefilesync文件同步软件
  • 【2023】M1/M2 Mac 导入Flac音频到Pr的终极解决方案
  • C# 图解教程 第5版 —— 第6章 方法
  • 283 移动零
  • maven 编译.../maven-metadata.xml 报错
  • 【Rust笔记】Rust与Java交互-JNI模块编写-实践总结
  • uniapp:幸运大转盘demo
  • android 13.0 通过系统自定义服务控制屏幕亮屏和灭屏操作
  • 【SQL】新建库表时,报错attempt to write a readonly database
  • C++ --STL
  • 一卷到底,大明哥带你横扫 Netty
  • Python Opencv实践 - 车辆统计(1)读取视频,移除背景,做预处理
  • ROS-6.参数的使用
  • 机器视觉在自动驾驶汽车中的应用与挑战