打开Chrome浏览器:webdriver.Chrome()
关闭当前浏览器窗口:driver.close()
推出浏览器进程:driver.quit()
访问xxx网址:driver.get('xxx')
网页前进:driver.forward()
网页后退:driver.back()
浏览器窗口最大化:driver.maximize_window()
浏览器窗口最小化:driver.minimize_window()
浏览器窗口全屏:driver.fullscreen_window()
1、使用find_element(‘locator’,‘value’)定位元素:
(1)直接传递:
直接传递locate type的方式只支持4中定位元素的方法,分别是id、name、XPath、CSS。
driver.find_element('id','?')
driver.find_element('name','?')
driver.find_element('xpath','?')
driver.find_element('css','?')
(2)借助By传递:
可以支持8种定位元素的方法。
引入common.by的包:from selenium.webdriver.common.by import By
driver.find_element(By.ID,'?')
driver.find_element(By.NAME,'?')
driver.find_element(By.XPATH,'?')
driver.find_element(By.TAG_NAME,'?')
2、串联查找:
创建html文件myhtml1.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="A">
<div id="B">
<div>parent to child</div>
</div>
</div>
</body>
</html>
编写串联查找代码:
from selenium import webdriver
import os
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
html_file = os.getcwd()+os.sep + 'myhtml1.html'
driver.get(html_file)
sleep(2)
mytext = driver.find_element(By.ID,"B").find_element(By.TAG_NAME,"div").text
print(mytext)
driver.quit()
关键代码:
ele = driver.find(By.ID,"div")
#通过is_displayed方法判断页面元素是否课件
#对于style="display: none;style="visibility: hidden, 页面不可见
print("ele is display: {}".format(ele.is_displayed()))
输出结果:ele is display: True #可见
或 ele is display: False #不可见
关键代码:
ele = driver.find(By.ID,"div")
#通过is_enabled方法判断页面元素是否课件
#如果页面元素有"disavled"属性的话,则页面元素不可用
print("ele is enabled: {}".format(ele.is_enavled()))
输出结果:ele is enabled: True #可用
或ele is enabled: False #不可用
关键代码:
print(ele.is_selected()) #判断复选框是否被选中,否,返回False
ele.click() #单击,使复选框处于选中状态
print(ele.is_selected()) #判断复选框是否被选中,是,返回True
输出结果:False
或 True
WebDriver封装了一套鼠标操作的包。
引入包:from selenium.webdriver.common.action_chains import ActionChains
固定写法:
ActionChains(driver).click(ele).perform() #鼠标单击
ActionChains(driver).double_click(ele).perform() #鼠标双击
ActionChains(driver).context_click(ele).perform() #鼠标右击
ActionChains(driver).move_to_element(ele).perform() #鼠标指针悬浮操作
ActionChains(driver).drag_and_drop(ele1,ele2).perform() #模拟鼠标拖动操作 从ele1到ele2
引入包:from selenium.webdriver.commom.keys import Keys
关键代码:
ele.send_Keys('?') #输入文字
ele.clear() #通过clear方法清除搜索框中的内容
ele.send_Keys(Keys.CONTROL,'V') #组合键"Ctrl+V"