-
下载浏览器驱动
1、selenium环境部署:https://www.cnblogs.com/imyalost/p/7242524.html,这是网上找的比较全
2、chromedriver驱动下载地址: http://chromedriver.storage.googleapis.com/index.html -
selenium调用Chrome浏览器访问百度并记录数据
注释比较清楚,很好懂,火狐浏览器需下载geckodriver进行驱动,但是没有发现支持最新版浏览器的geckodriver,如果要用火狐需要把浏览器恢复到旧版。
# -*- coding: utf-8 -*-
#导入selenium模块
from selenium import webdriver
driver = webdriver.Chrome(r"D:\py\chromedriver.exe")
driver.implicitly_wait(20)
'''
implicitly_wait():隐式等待
当使用了隐士等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常
换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0
一旦设置了隐式等待,则它存在整个 WebDriver 对象实例的声明周期中,隐式的等到会让一个正常响应的应用的测试变慢,
它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行的时间。
'''
#窗口最大化
#broswer.set_window_size(1366,768)
#分辨率1366 x 768
driver.maximize_window()
# 使用get方法请求
driver.get('https://www.baidu.com/')
# 定位元素,此处使用的是按name定位,可以不唯一,结果为一个列表,找输入框
search_field = driver.find_element_by_name('wd')
# 清空列表
search_field.clear()
# 赋值,输入ppt进行搜索
search_field.send_keys('ppt')
# 提交
search_field.submit()
# '//*[@srcid=1599]'可以直接在浏览器中使用开发者工具查找定位
products = driver.find_elements_by_xpath('//*[@srcid=1599]')
# 获取元素数量及值
print ('Found ' + str(len(products)) + ' products:')
# 使用循环进行遍历
for product in products:
print (product.text)
# 关闭浏览器窗口
driver.quit()
下面是执行的结果
结果.png
-
关于如何定位
这里讲的比较详细就不再赘言了
https://www.cnblogs.com/minieye/p/5803640.html -
selenium常用的函数
1.获取当前页面Url的函数
方法:current_url
实例:driver.current_url
2.表单的提交
方法:submit
解释:查找到表单(from)直接调用submit即可
实例:driver.find_element_by_id("form1").submit()
3.获取CSS的属性值
方法:value_of_css_property(css_name)
实例:driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")
4.获取元素的属性值(一组元素中非常实用)
方法:get_attribute(element_name)
实例:driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")
5.判断元素是否被选中
方法:is_selected()
实例:driver.find_element_by_id("form1").is_selected()
6.返回元素的大小
方法:size
实例:driver.find_element_by_id("iptPassword").size
返回值:{'width': 250, 'height': 30}
7.判断元素是否显示(非常实用)
方法:is_displayed()
实例:driver.find_element_by_id("iptPassword").is_displayed()
8.判断元素是否被使用
方法:is_enabled()
实例:driver.find_element_by_id("iptPassword").is_enabled()
9.获取元素的文本值(非常实用)
方法:text
实例:driver.find_element_by_id("iptUsername").text
10.元素赋值
方法:send_keys(*values)
实例:driver.find_element_by_id("iptUsername").send_keys('admin')
11.删除浏览器所有的cookies
方法:delete_all_cookies()
实例:driver.delete_all_cookies()
12.删除指定的cookie
方法:delete_cookie(name)
实例:deriver.delete_cookie("my_cookie_name")
13.设置等待超时时间,可以在设置的时间内智能等待
方法:implicitly_wait(wait_time)
实例:driver.implicitly_wait(30)
14.查看浏览器的名字
方法:name
实例:drvier.name
15.打印title
方法:title
实例:deriver.title
网友评论