selenium学习记录
Posted sailfan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium学习记录相关的知识,希望对你有一定的参考价值。
1 声明浏览器对象
from selenium import webdriver brower = webdriver.Chrome() brower = webdriver.Firefox() brower = webdriver.Edge() brower = webdriver.PhantomJS() brower = webdriver.Safari()
2 访问页面, 使用get方法访问页面
from selenium import webdriver brower = webdriver.Chrome() brower.get("http://www.baidu.com") print(brower.page_source) brower.close()
3 查找节点
from selenium import webdriver brower = webdriver.Chrome() brower.get("http://www.baidu.com") inputById = brower.find_element_by_id("kw") inputBySelector = brower.find_elements_by_css_selector("#kw") inputByXpath = brower.find_element_by_xpath("//*[@id=‘kw‘]") print(inputById, inputBySelector, inputByXpath)
以上分别使用id, css选择器, xpath方法获取节点, 结果如下, 是一致的
4 获取节点
brower.find_element_by_id() # 根据元素ID选择 brower.find_element_by_name() # 根据元素name属性选择 brower.find_element_by_link_text() # 根据元素中的文本部分选择 brower.find_element_by_partial_link_text() # 类似上一个, 有点模糊查询的意思 brower.find_element_by_xpath() # 根据xpath来选择元素 brower.find_element_by_tag_name() # 根据元素名称选择 brower.find_element_by_class_name() # 根据元素类名选择 brower.find_element_by_css_selector() # css选择器,
此外,selenium提供了一个通用的方法, find_element(),它需要传入两个参数, 查找方式和值
from selenium import webdriver from selenium.webdriver.common.by import By brower = webdriver.Chrome() brower.get("http://www.baidu.com") inputFirst = brower.find_element(By.ID, "kw") inputSecond = brower.find_element_by_id("kw") print(inputFirst == inputSecond)
可以看到, 以上两个方法完全是等值的,只不过使用起来会更加灵活
多个节点
如果要查找的元素在页面中存在多个, 那么使用find_element方法只能查询到第一个元素,这时就要使用find_elements()方法了, 与上面的方法相比仅仅是多了一个s, 查询结果为一个列表。列表中选择元素使用操作列表的方法来操作
5 操作元素(未完待续)
以上是关于selenium学习记录的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段
python+selenium+unittest+pageobject学习记录