设置浏览器大小:像素点
set_window_size(width,height)
maximize_window() 浏览器全屏显示,不带参数
控制浏览器前进、后退:
driver.forward()
driver.back()
模拟浏览器刷新:
driver.refresh()
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(r"http://www.baidu.com/")
#参数是像素点宽,高
driver.set_window_size(800,800)
print("浏览器大小是800px,800px")
driver.find_element_by_link_text("新闻").click()
driver.back() #返回前一个页面
driver.forward() #前进前一个页面
driver.refresh() #刷新当前页面
driver.find_element_by_css_selector("#ww").send_keys("python3")
driver.find_element_by_xpath("//*[@class='btn']").click()
driver.refresh() #刷新当前页面
driver.quit()
clear()清除文本
send_keys("....") 模拟按键输入
click() 单击元素,前提是它是可以被单击的对象。
另外click()方法不仅可以用于单击一个按钮,它还能可以单击任何可以单击的文字、图片、checkbox、radio、select下拉框等。
submit() 用于提交表单,同样可以用于提交一个按钮。
WebElement接口常用方法
先看例子:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(r"http://www.baidu.com/")
size = driver.find_element_by_name("wd").size
print(size) #size属性,返回元素的尺寸,表单输入框之类的width、height等
text = driver.find_element_by_id("jgwab").text
print(text) #text属性,获取元素的文本,可以用力判断打开的页面是否是预期的。
attribute = driver.find_element_by_xpath(".//input[@id='kw']").get_attribute('maxlength')
print(attribute) #get_attribute()方法可以获取属性值
result = driver.find_element_by_partial_link_text("京公网安备").is_displayed()
print(result) #is_displayed() 元素是否设置可见,可见返回true则false
driver.quit()
size属性返回元素尺寸
text属性返回元素文本
get_attribute()方法获取属性值
is_displayed()方法返回该元素是否设置可见
鼠标事件
对鼠标的操作:右击、双击、悬停、鼠标拖动等功能,
webdriver中对鼠标的操作的方法封装在ActionChains类中 ,使用前要先导入ActionChains类:
from selenium.webdriver.common.action_chains import ActionChains
ActionChains类提供的鼠标操作常用方法:
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 鼠标悬停
perform() 执行所有ActionChains类中存储的行为,可以理解为对整个操作的提交动作
鼠标右键操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #导入ActionChains类
driver = webdriver.Firefox()
driver.get(r"https://yunpan.360.cn/")
driver.maximize_window ()
driver.find_element_by_xpath("//*[@name='account']").clear()
driver.find_element_by_xpath("//*[@name='account']").send_keys("username.com")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("pwd")
driver.find_element_by_xpath("//*[@id='login']/div/div[2]/form/p[4]/label/input").click()
driver.find_element_by_xpath("//*[@id='login']/div/div[2]/form/p[5]/input").click()
#定位到需要右击的元素
right_click = driver.find_element_by_link_text("jemeter")
#对定位到的元素执行鼠标邮件操作,调用ActionChains类,将浏览器驱动driver作为参数传入,context_click()需要指定元素位置
ActionChains(driver).context_click(right_click).perform()
鼠标双击操作
double_click()方法模拟鼠标双击操作
(单击查看详情,双击弹出修改页面就用这个方法模拟)
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get(r"http://www.baidu.com/")
....
#定位需要双击的元素
double_click = driver.find_element_by_xpath("")
#对定位到的元素进行双击操作
ActionChains(driver).double_click(double_click).perform()
a = driver.find_element_by_class_name("")
ActionChains(driver).double_click(a).perform()
鼠标悬停
move_to_element()方法模拟鼠标悬停
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get(r"http://www.baidu.com/")
driver.set_window_si