【python】selenium的常用用法

Selenium是一个自动化测试工具,可以通过它来控制浏览器自动执行一系列操作。它常用于UI界面测试和爬虫。这里介绍几个Selenium的常用用法:

1 启动浏览器

可以使用WebDriver启动不同的浏览器,如:

from selenium import webdriver
#启动Chrome浏览器
driver=webdriver.Chrome()
#启动Firefox浏览器
driver=webdriver.Firefox()
#启动Safari浏览器
driver=webdriver.Safari()

2 设置窗口尺寸

可以使用set_window_size()方法对设置窗口尺寸:

driver.set_window_size(500,500)

3 访问网页

使用get()方法访问网页:

from selenium import webdriver
driver.get("https://www.baidu.com")

4 查找网页元素

可以通过ID、CSS选择器、XPATH等来查找网页元素:

from selenium import webdriver
#通过ID查找
driver.find_element_by_id("kw")
#通过CSS选择器查找
driver.find_element_by_css_selector("#kw")
#通过XPARH查找
driver.find_element_by_xpath("//input[@id='kw']")

4.1 通过CSS选择器查找

这里用一个简单的网页为例,说明如何通过CSS选择器来查找网页元素:

html
<!DOCTYPE html>
<html>
<head>
<title>CSS Selector Demo</title>
</head>
<body>

<div id="header">
 <h1>CSS Selector Demo</h1>
</div>

<div class="content">
 <ul>
  <li><a href="#">Link 1</a></li>
  <li><a href="#">Link 2</a></li>
  <li><a href="#">Link 3</a></li>
 </ul>
</div> 

<div id="footer">
 <p>Copyright &copy; 2020</p> 
</div>

</body>
</html>

对应的Python代码使用Selenium如下:

rom selenium import webdriver

driver = webdriver.Chrome()
driver.get("file:///your_path/css_selector_demo.html")

# 通过ID查找元素
driver.find_element_by_css_selector("#header")

# 通过class查找元素 
driver.find_element_by_css_selector(".content")

# 通过标签查找元素
driver.find_element_by_css_selector("ul")

# 通过子选择器查找元素
driver.find_element_by_css_selector("div.content ul li a")

# 通过后代选择器查找元素
driver.find_element_by_css_selector("div#header h1") 

# 通过属性查找元素
driver.find_element_by_css_selector("a[href='#']")

driver.quit()

通过ID选择器(#header)Class选择器(.content)标签选择器(ul)子选择器(div.content ul li a)后代选择器(div#header h1)以及属性选择器(a[href=‘#’]),我们可以灵活定位到网页中的不同元素。

5 操作网页元素

5.1 简易操作

可以点击、输入文本、清除文本等操作:

# 点击元素
element.click()

# 输入文本 
element.send_keys("selenium")

# 清除元素文本
element.clear() 

5.2 ActionChains类方法

在selenium常配合webdriver中ActionChains类方法对网页进行操作,ActionChains类封装了一系列滑鼠操作和键盘操作,可以用来模拟复杂的用户交互行为。这里用一个简单的网页为例,演示一下ActionChains的常用方法:

from selenium import webdriver
from selenium.webdriver import ActionChains

driver = webdriver.Chrome()
driver.get("file:///your_path/action_chains_demo.html")

# 定位到元素
div1 = driver.find_element_by_id("div1")
div2 = driver.find_element_by_id("div2")
button = driver.find_element_by_id("button1")

# ActionChains对象    
action = ActionChains(driver)

# 鼠标悬停在div1上
action.move_to_element(div1).perform()  

# 鼠标拖拽div1到div2
action.drag_and_drop(div1, div2).perform()  

# 鼠标点击button 
action.click(button).perform()

# 鼠标双击div1
action.double_click(div1).perform()

# 鼠标右击div2
action.context_click(div2).perform()

# 按住键盘的Ctrl键
action.key_down(Keys.CONTROL).perform()   

# 释放Ctrl键
action.key_up(Keys.CONTROL).perform()

#屏幕向左移动
action.send_keys(Keys.LEFT).perform() 

#屏幕向上移动
action.send_keys(Keys.UP).perform()  

driver.quit()

我们可以使用move_to_element()方法进行鼠标悬停,drag_and_drop()进行拖拽,click()和double_click()进行点击,context_click()进行右击,key_down()和key_up()进行键盘操作等。
ActionChains可以灵活模拟复杂的用户交互行为,是Selenium的一个非常实用的功能类。

6 执行JavaScript

可以使用execute_script()方法执行JavaScript代码:

driver.execute_script("document.title='selenium';")

7 截屏

可以使用get_screenshot_as_file()方法对当前网页进行截屏:

driver.get_screenshot_as_file("baidu.png")

8 关闭浏览器

使用quit()方法关闭浏览器:

driver.quit()

猜你喜欢

转载自blog.csdn.net/weixin_47970003/article/details/130516435