一、操作页面的方法
1.获取当前页面的Url函数
方法:current_url
实例:driver.current_url
2.获取元素坐标
方法:location
解释:首先查找到你要获取元素的,然后调用location方法
实例:driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location
3.表单的提交
方法: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("sellaiyuan").get_attribute("sellaiyuan")
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").text
11.元素赋值(输入内容)
方法:send_keys(*values)
实例:driver.find_element_by_id("iptUsername").send_keys('admin')
element.send_keys('输入的内容') #输入内容
注意如果是函数需要增加转义符u,eg.
driver.find_element_by_id("iptUsername").send_keys(u'青春')
12.返回元素的tagName
方法:tag_name
实例:driver.find_element_by_id("iptUsername").tag_name
13.删除浏览器所以的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.设置等待超时
方法:implicitly_wait(wait_time)
实例:driver.implicitly_wait(30)
19.浏览器窗口最大化
方法:maximize_window()
实例:driver.maximize_window()
20.查看浏览器的名字
方法:name
实例:drvier.name
二、获取html文件后再进行解析(翻页)
from bs4 import BeautifulSoup
from lxml import etree
#案例一:从本地读取html静态文件
Path = f'{current_dirname}/index.html'
with open(Path, encoding="utf-8") as f:
html = f.read()
#案例二:selenium翻页后获取html页面:
driver.find_element_by_xpath(r"下一页的xpath路径").click()
html = driver.page_source() #获取翻页后新页面的源码
#转化方式一: 将获取到的新页面转成xpath可以解析的对象
page_source = etree.HTML(html.encode('utf-8'))
lilist = page_source.xpath("/html/body/div[3]/div[7]/ul/li")
# 转化方式二:将获取到的新页面转成 bs4 可以解析的对象
soup = BeautifulSoup(html,'lxml')
items = soup.find_all('#id')
三、多页面切换
from selenium import webdriver
import time
browser = webdriver.Chrome()
first_url='http://www.baidu.com'
browser.find_element_by_xpath('//div/div/div/ul/li[1]/strong/a').click()
browser.switch_to_window(browser.window_handles[0])
browser.title #第一个页面
browser.switch_to_window(browser.window_handles[1])
browser.title #最后一个页面
browser.quit()
如果打开多个浏览器句柄和标签页的对应关系:
标签页顺序(按照打开顺序):1 2 3 4 5
对应的句柄 :0 4 3 2 1
四、定位
1、CSS定位
driver.find_element_by_css_selector('#id')
driver.find_element_by_css_selector('.classname')
driver.find_element_by_css_selector('input')
driver.find_element_by_css_selector('[id="id"]')
# 组合形式定位
driver.find_element_by_css_selector('input.classname')
driver.find_element_by_css_selector('#input > span > a')
网友评论