pythonUI自动化(1)
python UI自动化
环境准备
pip install selenium
selenium学习官方文档:https://selenium-python.readthedocs.io/
selenium Driver下载链接:
Chrome: http://chromedriver.storage.googleapis.com/index.html不同的
Chrome的版本对应的chromedriver.exe版本也不一样,下载时不要搞错了。如果是最新的Chrome, 下载最新的chromedriver.exe就可以了。把chromedriver的路径也加到环境变量里。
Firefox:https://github.com/mozilla/geckodriver/releases/根据自己的操作系统下载对应的驱动即可,使用的话,需要把驱动的路径和火狐浏览器的路径加入到环境变量里面才可以
IE:http://selenium-release.storage.googleapis.com/index.html根据自己
selenium版本下载对应版本的驱动即可,python的话,下载里面的IEDriverServerxxx.zip即可
1、下载并安装一个google浏览器(https://www.google.cn/chrome/),不要安装下面这种谷歌浏览器:

2、查看谷歌浏览器的版本:

3、下载跟google浏览器版本对应的google driver驱动器:


4、将下载好的driver驱动器放到python的安装目录,并解压:

5、测试一下能不能用google浏览器打开pycharm里面的html文件:

6、写一个简单的代码:
from selenium import webdriver
import time
browser = webdriver.Chrome()
res = browser.get('http://www.baidu.com')
browser.quit()
7、出现下面效果时,就代表环境搭好了:

定位元素
定位的方法如下:


元素的操作方法
from selenium import webdriver
import time
显性等待 导入库
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
开始会话
driver = webdriver.Chrome()
隐性等待 全局有效,从打开到关闭
driver.implicitly_wait(30)
访问一个地址
driver.get("http://www.baidu.com")
全屏
driver.maximize_window() 全屏
driver.set_window_size(1000,800) 键入宽高
后退
driver.back()
前进
driver.forward()
刷新
driver.refresh()
获取窗口标题
print(driver.title)
获取当前窗口的URL
print(driver.current_url)
获取当前窗口的句柄
print(driver.current_window_handle)
元素四大操作:click(),send_keys(),get_attribute(),text
获取属性值get_attribute()
value = driver.find_element_by_id("su").get_attribute("value")
获取文本内容
text = driver.find_element_by_xpath('//a[@name="tj_trnews"]').text
print(text)
点击按钮
driver.find_element_by_xpath('//div[@id="u1"]/a[@name="tj_login"]').click()
输入文本内容
driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys('1893285458')
关闭浏览器当前正在使用的窗口
driver.close()
关闭整个浏览器会话
driver.quit()
键盘事件:
from selenium.webdriver.common.keys import Keys
send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
send_keys(Keys.F1) 键盘F1
Send_keys(Keys.F5)键盘F5
send_keys(Keys.F12) 键盘F12
定位练习
百度搜索:
from selenium import webdriver
import time
if __name__=='__main__':
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
time.sleep(3)
driver.find_element_by_id("kw").send_keys('nba')
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()



浙公网安备 33010602011771号