欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【python】python-selenium使用

程序员文章站 2022-07-14 08:54:10
...

python-selenium使用

什么是 selenium ?

其实它就是一个自动化测试工具,支持各种主流的浏览器

使用selenium

1.下载浏览器驱动

使用selenium时,要确保所用的chrome浏览器跟chrome驱动版本对应,否则就会报错。
驱动下载地址
http://chromedriver.storage.googleapis.com/index.html

浏览器驱动下载地址

Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox: https://github.com/mozilla/geckodriver/releases
Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/

解压下载的驱动

2.配置环境变量

【python】python-selenium使用

3.编写代码

# 导入 web 驱动模块
from selenium import webdriver
# 创建一个 Chrome 驱动
driver = webdriver.Chrome()
# 使用 get 方法打开百度
url = 'http://www.baidu.com/'
driver.get(url)

# 获取到输入框
input = driver.find_element_by_css_selector('#kw')
# 获取到输入框之后我们就往里面写入我们要搜索的内容
input.send_keys('海的照片')

# 获取到搜索按钮
btn = driver.find_element_by_css_selector('#su')
# 按钮点击
btn.click()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CsCoKjwv-1581956823634)(E:/%E6%88%91%E7%9A%84%E5%9D%9A%E6%9E%9C%E4%BA%91/OneDrive/%E5%AD%A6%E4%B9%A0/%E7%AC%94%E8%AE%B0/%E5%9B%BE%E7%89%87/note_images/image-20200214115815009.png)]

selenium常用方法

selenium 提供了挺多方法给我们获取的

当我们要在页面中获取一个元素的时候,可以使用这些方法

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

比如我们打开了一个页面

是这样的 HTML

<html>
<body>
 <form id="loginForm">
  <input name="username" type="text" />
  <input name="password" type="password" />
  <input class="login" name="continue" type="submit" value="Login" />
 </form>
</body>
<html>

可以通过 id 获取 form 表单

login_form = driver.find_element_by_id('loginForm')

通过 name 获取相应的输入框

username = driver.find_element_by_name('username')
password = driver.find_element_by_name('password')

通过 xpath 获取表单

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")
login_form = driver.find_element_by_xpath("//form[@id='loginForm']")

通过标签获取相应的输入框

input1 = driver.find_element_by_tag_name('input')

class 获取相应的元素

login = driver.find_element_by_class_name('login')

用 Chrome 浏览器的审核元素

可以很方便获取相应的属性

直接 copy 就完事了

【python】python-selenium使用

如果觉得find_element_by_xxx_xxx太长了,那么我们还可以这样写

driver.find_elements(By.ID, 'xxx')

By.属性和上面的是一样的

ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"

其他方法

获取请求链接

driver.current_url

获取 cookies

driver.get_cookies()

获取源代码

driver.page_source

获取文本的值

input.text

以上就是 selenium 的常用方法

想要了解更多相关 selenium 的可以到官方文档查看

https://selenium-python.readthedocs.io/

使用phantomjs

  1. 下载phantomjs

下载地址http://phantomjs.org/download.html

下载后解压

  1. 配置环境变量

【python】python-selenium使用

  1. 将 Chrome 换成 phantomjs
browser = webdriver.PhantomJS()
相关标签: python