配套文件
chromedriver.py
96.0.4664.45_chrome64_stable_windows_installer .py
下载之后, 修改后缀名 py 为 exe
安装配置 浏览器
历史浏览器下载地址: https://www.chromedownloads.net/
浏览器驱动chromedriver下载地址:
http://chromedriver.storage.googleapis.com/index.html 或
http://npm.taobao.org/mirrors/chromedriver/
selenium之 chromedriver与chrome版本映射表:
亲测 selenium 4.1.3版本 +chromedriver_win32_96.0.4664.45版本 + 96.0.4664.45_chrome64_stable_windows_installer 版本 匹配成功
如何查看浏览器版本
菜单 ——> 帮助——> 关于Chrome
如何设置 chromedriver
把下载好的 chromedriver.exe 放到 浏览器默认安装的目录即可, 也可以指定位置
下图是浏览器默认安装的位置是在C盘
项目安装selenium 启动
pip install selenium
pip show selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options # 导入 设置浏览器指定文件目录
from selenium.webdriver.chrome.service import Service # 使用这个指定 chromedriver.exe 的位置
if __name__ == '__main__':
js = "window.open('{}','_blank');" # 设置在新标签上打开
option = Options()
# 设置chrome所在的位置
option.binary_location = "C:/Users/chentao/AppData/Local/Google/Chrome/Application/chrome.exe"
# executable设置chromedriver所在位置
driver = webdriver.Chrome(service=Service("C:/Users/chentao/AppData/Local/Google/Chrome/Application/chromedriver.exe"),options=option) # 启动浏览器
driver.get("https://www.baidu.com") # 打开第一个页面
driver.execute_script(js.format("https://www.baidu.com")) # 会等待第一个页面
selenium各种功能
selenium标签页的切换
- 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?需要我们做以下两步:
①、获取所有标签页的窗口句柄
②、利用窗口句柄字切换到句柄指向的标签页 - 这里的窗口句柄是指:指向标签页对象的标识
# 1. 获取当前所有的标签页的句柄构成的列表
current_windows = driver.window_handles
# 2. 根据标签页句柄列表索引下标进行切换
driver.switch_to.window(current_windows[0])
打开网页
在新标签页打开
js = "window.open('{}','_blank');" # 设置在新标签上打开
driver.execute_script(js.format("http://baidu.com"))
driver.switch_to.window(driver.window_handles[-1])
切换到最后一个标签页
driver.switch_to.window(driver.window_handles[-1])
切换到指定标签页
driver.switch_to.window(driver.window_handles[2])
在frame标签操作
# 方案一:根据iframe框架的id切换iframe标签
# driver.switch_to_frame('login_frame')
# 方案二:根据iframe框架的xpath路径切换iframe标签
el_frame = driver.find_element_by_xpath('//*[@id="login_frame"]')
driver.switch_to_frame(el_frame)
总结:
①、切换到定位的frame标签嵌套的页面中driver.switch_to.frame(通过find_element_by函数定位的frame、iframe标签对象)
②、利用切换标签页的方式切出frame标签
windows = driver.window_handles
driver.switch_to.window(windows[0])
[
](https://blog.csdn.net/qq_44096670/article/details/115395331)
获取元素定位
By
- By.NAME
- By.CLASS_NAME
- By.ID
- By.XPATH ```python from selenium.webdriver.common.by import By
driver = webdriver.Chrome(“chromedriver.exe”)
driver.find_element(By.NAME, “NAME”) driver.find_element(By.CLASS_NAME, “CLASS_NAME”) driver.find_element(By.ID, “ID”) driver.find_element(By.XPATH, ‘//*[@id=”su”]’)
<a name="ymfxq"></a>
### 点击
```python
driver.find_element(By.XPATH, '//*[@id="su"]').click()
输入内容
driver.find_element(By.XPATH, '//*[@id="su"]').send_keys("你好世界")
清空输入框
driver.find_element(By.XPATH, '//*[@id="su"]').clear()