简介
—Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。 ----让我的程序连接到浏览器,让浏览器来完成各种复杂的操作,我们只接受最终的结果 -----selenium; 自动化测试工具 ----可以打开浏览器。然后像人一样去操作浏览器, 程序员可以selenium中直接提取网页上的各种信息
----环境搭建: pip install selenium -i清华源
----下载浏览器驱动; https://npm.taobao.org/mirrors/chromedriver ----把解压缩的浏览器驱动chromedriver 放在python解释器所在的文件夹 ----让selenium启动谷歌浏览器
selenium webdriver的使用
----首先创建浏览器对象(以Chrome为例) driver = Chrome()
- 获取网页,获取网页有两种方法:
----使用Get方法 -driver.get("www.yiibai.com");
----使用Navigate方法 -driver.navigate().to("https://yiibai.com/selenium/");
- 查找表单并发送用户输入
web.find_element_by_xpath('//[@id="JuserName"]').send_keys('***')
- 清除用户输入
clear()方法用于从文本框中清除用户输入。
driver.find_element_by_xpath().clear();
- 通过Web元素获取数据
有时需要获取通过web元素写入的文本来执行某些断言和调试。使用getText()方法来获取通过任何web元素写入的数据。
driver.find_element_by_xpath(**).getText();
- 执行Click事件
click()方法用于对任何Web元素执行单击操作。
driver.find_element_by_xpath(**).click();
- 在浏览器历史记录中向后导航
driver.navigate().back();
- 在浏览器历史记录中向前导航
driver.navigate().forward();
- 刷新/重新加载网页
driver.navigate().refresh();
- 关闭浏览器
driver.close();
- 关闭浏览器和与驱动程序关联的其他所有其他窗口
driver.quit();
- 在Windows之间移动
driver.switch_to_window(web.window_handles[])
返回上一个窗口
web.switch_to_default_content()
- 在 frame 之间移动
web.switch_to_frame(**)
- 拖放
使用Action类执行拖放操作。
WebElement element = driver.findElement(By.name("source"));
WebElement target = driver.findElement(By.name("target"));
14.无头浏览器的实现 opt = Options()
# opt.add_argument("--headless")
# opt.add_argument("--disable-gpu")
opt.add_argument('--disable-blink-features=AutomationControlled')
#1.创建浏览器对象
web = Chrome(options=opt)
实现12306拖拽登录验证实例
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.action_chains import ActionChains
opt = Options()
# opt.add_argument("--headless")
# opt.add_argument("--disable-gpu")
opt.add_argument('--disable-blink-features=AutomationControlled')
#1.创建浏览器对象
web = Chrome(options=opt)
# 2.打开一个网址
web.get("https://kyfw.12306.cn/otn/resources/login.html")
print(web.title)
web.find_element_by_xpath('//*[@id="toolbar_Div"]/div[2]/div[2]/ul/li[2]/a').click()
web.find_element_by_xpath('//*[@id="J-userName"]').send_keys('用户名')
web.find_element_by_xpath('//*[@id="J-password"]').send_keys('密码')
web.find_element_by_xpath('//*[@id="J-login"]').click()
time.sleep(3)
index = web.find_element_by_xpath('//*[@id="nc_1__scale_text"]/span')
ActionChains(web).drag_and_drop_by_offset(index, 300, 0).perform()
利用超级鹰登录超级鹰网站图片验证实例
from chaojiying import Chaojiying_Client
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
web = Chrome()
web.get("https://www.chaojiying.com/user/login/")
image = web.find_element_by_xpath("/html/body/div[3]/div/div[3]/div[1]/form/div/img").screenshot_as_png
chaojiying = Chaojiying_Client('用户名', '密码', 'id')
print(chaojiying.PostPic(image, 1902))
dic = chaojiying.PostPic(image, 1902)
vs = dic['pic_str']
web.find_element_by_xpath("/html/body/div[3]/div/div[3]/div[1]/form/p[1]/input").send_keys('用户名')
web.find_element_by_xpath("/html/body/div[3]/div/div[3]/div[1]/form/p[2]/input").send_keys('密码')
web.find_element_by_xpath("/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input").send_keys(vs,Keys.ENTER)
|