【Python】Selenium常用方法、元素定位、判断元素、鼠标键盘操作

文章目录

  • 一、Selenium常用方法
  • 二、Selenium元素定位方法
  • 三、判断页面元素是否可见
  • 四、判断页面元素是否可用
  • 五、判断元素的选中状态
  • 六、鼠标操作实战
  • 七、键盘操作

一、Selenium常用方法

打开Chrome浏览器:webdriver.Chrome()
关闭当前浏览器窗口:driver.close()
推出浏览器进程:driver.quit()
访问xxx网址:driver.get('xxx')
网页前进:driver.forward()
网页后退:driver.back()
浏览器窗口最大化:driver.maximize_window()
浏览器窗口最小化:driver.minimize_window()
浏览器窗口全屏:driver.fullscreen_window()

二、Selenium元素定位方法

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

输出结果:FalseTrue

六、鼠标操作实战

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"

你可能感兴趣的:(python,selenium)