1.通过id查找
driver.find_element_by_id() 如: driver.find_element_by_id('kw')2.通过css选择器查找
driver.find_element_by_css_selector() id:#id值 class:.class值 标签:标签名 如: driver.find_element_by_css_selector('#kw')3.通过xpath查找
driver.find_element_by_xpath(xpath语法)1.强制等待
time.sleep()2.隐式等待
##隐式等待就是等到页面全部加载完成,比如js,css或者图片全请求到加载到页面,也就是我们常看到的页面不在转圈圈为止,程序才会继续运行。 driver.implicitly_wait(10)3.显式等待
## 导包 from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By ## 步骤: ## 1.创建等待对象 wait = WebDriverWait( driver,#浏览器驱动对象 10,最大等待时长 0.5,扫描间隔 ) ## 2.wait.until(等待条件)--->等待条件成立程序才继续运行。 ### 等待条件在selenium中有个专门的模块来设置了一些条件-------->expected_conditions as EC ### 最常用的条件有一下两个: EC.presence_of_element_located(( 查找的方法:By.ID,By.XPATH,By.CAA_SELECTOR, 查找的方法对应的查找语法 ))------->只要有一个符合条件的元素加载出来就通过 EC.presence_of_all_elements_located(( 查找的方法:By.ID,By.XPATH,By.CAA_SELECTOR, 查找的方法对应的查找语法 ))----->所有符合条件的元素都加载出来才行 ### 3.wait.until方法的返回值是一个对应定位器所定位到的webelement对象。你如果需要对这个webelment对象做一些点击或者其他操作,可以很方便的做到。导包:
from selenium import webdriver创建一个driver对象
driver = webdriver.PhantomJS()请求url
driver.get(url)等待
from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.suppory import expected_conditions as EC from selenium.webdriver.common.by import By ### 创建等待对象 wait = WebDriverWait(driver,10) ### 设置等待条件 """ 最常用的条件 EC.presence_of_element_located(( 查找的方法:By.ID,By.XPATH,By.CAA_SELECTOR, 查找的方法对应的查找语法 ))------->只要有一个符合条件的元素加载出来就通过 EC.presence_of_all_elements_located(( 查找的方法:By.ID,By.XPATH,By.CAA_SELECTOR, 查找的方法对应的查找语法 ))----->所有符合条件的元素都加载出来才行 """ ### webElement:是一个定位器定位到的对象,可以通过该对象做一些点击或其他操作 webElement = wait.until(等待条件) ## 等待条件成立才继续运行获取页面返回结果
driver.page_source利用xpath,re解析页面内容
1.获取当前页面的Url
方法:current_url 实例:driver.current_url2.获取元素坐标
方法:location 解释:首先查找到你要获取元素的,然后调用location方法 实例:driver.find_element_by_xpath("xpath").location3.表单的提交
方法:submit 解释:查找到表单(from)直接调用submit即可 实例:driver.find_element_by_id("form1").submit()4.获取CSS的属性值
方法:value_of_css_property(css_name) 实例:driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")5.获取元素的属性值
方法:get_attribute(element_name) 实例:driver.find_element_by_id("kw").get_attribute("kw")6.判断元素是否被选中
方法:is_selected() 实例:driver.find_element_by_id("form1").is_selected()7.返回元素的大小
方法:size 实例:driver.find_element_by_id("iptPassword").size 返回值:{'width': 250, 'height': 30}8.判断元素是否显示
方法:is_displayed() 实例:driver.find_element_by_id("iptPassword").is_displayed()9.判断元素是否被使用
方法:is_enabled() 实例:driver.find_element_by_id("iptPassword").is_enabled()10.获取元素的文本值
方法:text 实例:driver.find_element_by_id("iptUsername").text11.元素赋值
方法:send_keys(*values) 实例:driver.find_element_by_id("iptUsername").send_keys('admin')12.返回元素的tagName
方法:tag_name 实例:driver.find_element_by_id("iptUsername").tag_name13.删除浏览器所有的cookies
方法:delete_all_cookies() 实例:driver.delete_all_cookies()14.删除指定的cookie
方法:delete_cookie(name) 实例:deriver.delete_cookie("my_cookie_name")15.关闭浏览器
方法:close() 实例:driver.close()16.关闭浏览器并且退出驱动程序
方法:quit() 实例:driver.quit()17.返回上一页
方法:back() 实例:driver.back()18.清空输入框
方法:clear() 实例:driver.clear()19.浏览器窗口最大化
方法:maximize_window() 实例:driver.maximize_window()20.查看浏览器的名字
方法:name 实例:drvier.name21.返回当前会话中的cookies
方法:get_cookies() 实例:driver.get_cookies()22.根据cookie name 查找映射Value值
方法:driver.get_cookie(cookie_name) 实例:driver.get_cookie("NET_SessionId")23.截取当前页面
方法:save_screenshot(filename) 实例:driver.save_screenshot("D:\\Program Files\\Python27\\NM.bmp")