Selenium自动化测试(二)之selenium使用和元素定位

(一)selenium的简单使用

1、导包

from selenium import webdriver

2、初始化浏览器

# 驱动在python环境中
browser = webdriver.Chrome()
# 驱动不放在python环境中,添加executable_path关键字
browser = webdriver.Chrome(executable_path=r"D:\chromedriver.exe")

3、打开网址

browser.get("http://www.baidu.com")

4、对浏览器的一些简单操作

# ------------------获取浏览器信息----------------
# 获取网址
browser.current_url
# 获取网页标题
browser.title
# 获取网页中的源码
browser.page_source
# 获取所有的窗口,所有的标签页(list类型)
browser.window_handles
# 获取现在正处于的标签页, 返回的是窗口句柄(窗口ID)
browser.current_window_handle # ------------------浏览器动作--------------------
# 最大化窗口
browser.maximize_window()
# 最小化窗口
browser.minimize_window()
# 设置窗口的大小,参数为:长宽,单位:像素
browser.set_window_size(800, 600)
# 刷新
browser.refresh()
# 后退
browser.back()
# 前进
browser.forward()

5、关闭标签页和浏览器

# 关闭标签页
browser.close()
# 关闭浏览器
browser.quit()

(二)元素定位(百度为例)

  • 在python中模拟点点点,实际上就是通过在 HTML 当中去找到需要操作的元素(标签)进行模拟操作
  • find_element_by_...:返回的是一个WebElement对象,如果有多个值也只会返回第一个值
  • find_elements_by_...:返回的是一个WebElement对象list列表,不管有多少个值都返回的列表(可以通过索引获取你需要的哪一个)
  • send_keys("内容"):输入内容
  • click():单击
  • 在python中通过元素的特征进行查找元素,根据id属性查找(id具有唯一性)

注意点:

  • id属性可能会是动态变化的。
  • 如果id中包含数字,那么这个id属性你要小心了,很大可能是动态变化的。
  • 像那种拼音单词之类的,一般情况下是不可变的id。

* ***以下用的都是:find_element_by_... ***

1、根据ID属性进行定位,查询到的是一个WebElement对象

input_element = browser.find_element_by_id("kw")
print(input_element)
# 输入内容
input_element.send_keys("Python")

2、根据name属性进行定位

element = browser.find_element_by_name("wd")
print(element)

3、根据class属性进行定位

e = browser.find_element_by_class_name("s_ipt")
print(e)

4、通过tagname(标签名称)进行定位。查找到的元素不具备唯一性

e = browser.find_element_by_tag_name("a")
print(e)

5、定位a标签超链接

e = browser.find_element_by_link_text('新闻')
# 点击链接
e.click()

6、定位a标签超链接,模糊定位

e = browser.find_element_by_partial_link_text('新')
e.click()

7、xpath

8、css 选择器

【完】


04-07 08:09