自动化测试之三:WebDriver API(2)

2. 控制浏览器

WebDriver主要提供操作页面上各种元素的方法,同时,它还提供了操作浏览器的一些方法,控制浏览器窗口大小,操作浏览器前进,后退等。

2.1 控制浏览器窗口大小 

from selenium import webdriver

chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)

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

driver.set_window_size(500, 500)    # 设置窗口大小为 500 x 500

driver.quit()

2.2 控制浏览器后退,前进

from selenium import webdriver

chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)

url1 = "http://www.baidu.com"
print("正在打开第一个网页--->", url1)
driver.get(url1)

url2 = "http://news.baidu.com"
print("正在打开第二个网页---->", url2)
driver.get(url2)

print("后退到第一个网页,--->百度首页!!")
driver.back()

print("前进到第二个网页,---> 新闻页!!!")
driver.forward()


driver.quit()

2.3 模拟浏览器刷新

from selenium import webdriver

chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)


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


# 刷新该页面
driver.refresh()

driver.quit()

3 WebDriver中常用方法

前面我们已经知道了如何定位元素,但定位只是第一步,定位之后还需要对这个元素进行操作,比如,单击,输入等,常用的几个方法如下:


1. clear()             清除文本

2. send_keys(value)    模拟按键输入

3. click()             单击元素

3.1 模拟打开百度首页,在搜索框输入内容,并点击搜索按钮 (测试上面三个方法)

from selenium import webdriver

chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)

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

driver.find_element_by_id("kw").clear()   # 定位到百度输入框并清空

driver.find_element_by_id("kw").send_keys("selenium")   # 定位到百度输入框输入selenium

driver.find_element_by_id("su").click()    # 定位到百度搜索按钮并点击,模拟搜索操作



# driver.quit()


# 以上分三步实现搜索只是为了模拟三个方法,是可以一步写完成的

3.2 模拟表单提交: submit()

 

4. submit   提交

    有些搜索框不提供搜索按钮,而是通过按键盘上的回车键完成搜索内容的提交,这时就可以使用submit()

from selenium import webdriver

chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)

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

search_text = driver.find_element_by_id("kw")  # 获取百度输入框

search_text.send_keys("selenium")    # 在输入框内输入内容

search_text.submit()   # 提交

# driver.quit()

————————————————————————————————————————————————————————————————————————————————————————

5. size                   返回元素的尺寸

6. text                   获取元素的文本

7. get_attribute(name)    获得属性值

8. is_displayed()         返回该元素是否用户可见

3.3 测试上面四组方法

from selenium import webdriver

chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)

driver.get("http://www.baidu.com")
size = driver.find_element_by_id("kw").size      # 获取输入框的尺寸
print(size)

text = driver.find_element_by_id("s-bottom-layer-right").text      # 获取百度首页底部备案信息
print(text)

attribute = driver.find_element_by_id("kw").get_attribute("type")   # 获取输入框type属性
print(attribute)

rst = driver.find_element_by_id("kw").is_displayed()  # 返回元素是否可见
print(rst)


# driver.quit()

4 鼠标操作

在WebDriver中,与鼠标操作的相关方法都封装在了ActionChains类中,常用方法有:

from selenium.webdriver import ActionChains

1. perform()              执行ActionChains类中存储的所有行为

2. context_click()        右击

3. double_click()         双击

4. drag_and_drop()        拖动

5. move_to_element()      鼠标悬停

4.1 鼠标悬停操作

from selenium import webdriver

# 导入
from selenium.webdriver import ActionChains


chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"

driver = webdriver.Chrome(executable_path=chrome_driver_path)


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

above = driver.find_element_by_link_text("更多")       # 定位到要悬停的元素

ActionChains(driver).move_to_element(above).perform()   # 执行鼠标悬停操作



# driver.quit()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值