测试那些事儿

Selenium搜索框调用实例(基于Python)

2019-03-19  本文已影响32人  极客与宽客

Selenium webdriver

Selenium.webdriver模块实现了Selenium所支持的各种浏览器驱动程序类,包括Firefox浏览器、Chrome浏览器、IE浏览器、Safari浏览器和多种其他浏览器。另外,RemoteWebDriver则是用于调用远程机器进行浏览器测试的。

我们需要从Selenium包中导入WebDriver才能使用Selenium WebDriver方法。

from selenium import webdriver

选用一个浏览器驱动实例,它会提供一个接口去调用Selenium命令来跟浏览器交互

driver = webdriver.Firefox()

加载一个新的Firefox浏览器窗口,并在驱动上设置一些参数

driver.implicityly_wait(30) #30秒隐式等待时间

driver.maximize_window() #调用Selenium API来最大化浏览器窗口

通过调用driver.get()方法访问该应用程序(在get()方法被调用后,WebDriver会等待,一直到页面加载完成才继续控制脚本)

driver.get('http://demo-store.seleniumacademy.com/')

使用find_element_by_name方法来定位搜索输入框(HTML元素是用标签和属性来定义的,可以使用这些信息来定位一个元素)

在这个url例子中,搜索输入框有一个值为q的name属性,使用这个属性来定位

search_field = driver.find_element_by_name('q')

一旦找到这个搜索输入框,我们可以使用clear()方法来清理之前的值(如果搜索输入框已经有值的话)

search_field.clear()

通过send_keys()方法输入新的特定的值

search_field.send_keys('phones')

通过调用submit()方法提交搜索请求

search_field.submit()

Firefox浏览器会加载结果页面。结果页面中有一系列与搜索项(phones)匹配的产品。

读取结果列表,并且使用find_elements_by_xpath方法获取路径是以<a>标签结尾的所有产品名称。它将会返回多于1个的元素列表。

products = driver.find_elements_by_xpath("//h2[@class='product-name']/a")

打印在页面中展示的产品个数(即符合路径以<a>标签结尾的元素个数)和产品的名称(即<a>标签的text属性值)

print('Found ' +str(len(products)) +' products:')

for product in products:

    print(product.text)

使用driver.quit()方法来关闭Firefox浏览器

driver.quit()

资料来源:Selenium自动化测试:基于Python语言

上一篇 下一篇

猜你喜欢

热点阅读