Selenium搜索框调用实例(基于Python)
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语言