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?)(代码片段

selenium+Python学习之一

Python Selenium UI自动化学习记录

python+selenium+unittest+pageobject学习记录

selenium 学习笔记 ---新手学习记录 问题总结(java)

selenium+phantomJS学习使用记录