美文网首页
selenium常用方法

selenium常用方法

作者: 王文强Python | 来源:发表于2020-07-11 18:29 被阅读0次

一、操作页面的方法

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')

相关文章

网友评论

      本文标题:selenium常用方法

      本文链接:https://www.haomeiwen.com/subject/qgbicktx.html