selenium浏览器操作大全

本文详细介绍如何使用Selenium进行网页自动化操作,包括配置Chromedriver、常见命令使用、元素定位及高级技巧等。

1、chromedriver位置

下载:这里是一个镜像网站
https://chromedriver.storage.googleapis.com/index.html

根据自己的浏览器下载合适的版本
将chromedriver 放到环境内
具体为:
venv > scripts 下
也就是python安装位置
在这里插入图片描述

2、使用

两个常用的命令
from selenium import webdriver
from selenium.webdriver.common.by import By
打开浏览器
driver = webdriver.Chrome()
打开一个网页
driver.get("http://www.baidu.com")
选择一个元素
element = driver.find_element(By.ID, "kw")
element.send_keys("hello\n")# 注 此处\n是回车的意思
有时候chromedriver访问会被拒绝

如:
这是selenium访问的
但是正常浏览器显示的是fasle
在这里插入图片描述
解决办法:

def getDriver2():
    # 此处将浏览器的window.navigator.webdriver 改为flase
    options = webdriver.ChromeOptions()
    # 修改window.navigator.webdriver为undefined,防机器人识别机制,selenium自动登陆判别机制
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    options.add_argument("--disable-blink-features=AutomationControlled")
    # 更换头部
    # options.add_argument('user-agent=' + a_user)
    options.add_argument("--disable-extensions")
    options.add_argument("--disable-gpu")
    driver = webdriver.Chrome(options=options)
    return driver
driver = getDriver2()
drver.get("https://www.baidu.com")

常用命令

等待

driver = webdriver.Chrome()
# 隐式等待,需要在driver后面写上
driver.implicitly_wait(10) # 每半秒找寻下元素,直到达到设定的时间,此处为10s
### 这里是每半秒找以下ID为“kw“的元素,一共找10秒,找不到就退出
driver.get("http://www.baidu.com")
element = driver.find_element(By.ID, "kw")
element.send_keys()
# 页面等待, 等待条件满足时,再去获取数据
WebDriverWait(driver, 10).until(lambda  d: "python" in d.title)
# 获取当前url
driver.current_url
# 获取标题
driver.title
# 全屏窗口
driver.fullscreen_window()
# 屏幕截图
driver.save_screenshot("./imag.png")
# 元素截图
element.screenshot("./image.png")

# 返回上一页
driver.back()

# 前往下一页
driver.forward()

# 刷新页面
driver.refresh()

向标签发送数据

# 向标签发送数据
# element.send_keys("通讯\n") # \n是回车的意思
# 发送内容然后回车
# element.find_element(By.NAME,"q").send_keys("hello" + Keys.ENTER)
# 清楚输入框内的内容
# element.clear()
# 获取整个标签(包含该元素)
print(element.get_attribute("outerHTML"))
# 获取该元素下面的全部标签
print(element.get_attribute("innerHTML"))

定位和查找页面元素

# 定位和查找页面元素
# 定位单个元素
# driver.find_element(By.NAME,"q")

# 获取元素的多个子元素
# element.find_elements(By.TAG_NAME, "p")

# 获取标签名
# driver.find_element(By.CSS_SELECTOR, "h1").tag_name

获取文本

# 获取文本
# driver.find_element(By.CSS_SELECTOR,"h1").text
# 获取属性
# element.get_attribute("title")
css选择多个元素
find_elements_by_css_selector(css参数)
# driver.find_elements(By.CSS_SELECTOR, "css")

切换窗口


# 找出新窗口:
# new_window = driver.window_handles[-1]   #  '-1'代表打开的最后一个窗口
# 切换到新窗口:
# driver.switch_to.window(new_window)
# 找出所有窗口的句柄
# windows = driver.window_handles
# print(windows)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值