有时需要使用定位方法,在具体通过哪种定位方式(id 或 name)根据实际场景而定位,By 就可以设
置定位策略。
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,u"新闻")
find_element(By.PARTIAL_LINK_TEXT,u"新")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
find_element()方法只用于定位元素。它需要两个参数,第一个参数是定位方式,这个由 By 提供;另
第二个参数是定位的值。在使用 By 时需要将 By 类导入。
控制浏览器
Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览
器的大小以及浏览器后退、前进按钮等。
控制浏览器窗口大小
在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测
页面的前端样式进行评测。比如可以将浏览器设置成移动端大小(480x800),然后访问移动站点,对其样式
进行评估;WebDriver 提供了 set_window_size() 方法来设置浏览器的大小。
test.py
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://m.mail.10086.cn")
#参数数字为像素点
print "设置浏览器宽 480、高 800 显示"
driver.set_window_size(480, 800)
driver.quit()
在 PC 端运行执行自动化测试脚本大多的情况下是希望浏览器在全屏幕模式下执行,那么可以使用
maximize_window()方法,其用法与 set_window_size() 相同,但它不需要传参。
控制浏览器后退、前进
在使用浏览器浏览网页的时候,浏览器提供了后退和前进按钮,可以方便的对浏览过的网页之间切换,
那么 WebDriver 也提供了对应的 back()和 forward()方法来模拟后退和前进按钮。下面通过例子来演示这两
个方法的使用。
test.py
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
#访问百度首页
first_url= 'http://www.baidu.com'
print "now access %s" %(first_url)
driver.get(first_url)
#访问新闻页面
second_url='http://news.baidu.com'
print "now access %s" %(second_url)
driver.get(second_url)
#返回(后退)到百度首页
print "back to %s "%(first_url)
driver.back()
#前进到新闻页
print "forward to %s"%(second_url)
driver.forward()
driver.quit()
为了使脚本的执行过程看得更清晰,在每操作一步都通过 print 来打印当前的 URL 地址。执行结果如
下 :
Python shell
>>> ================================ RESTART ================================
>>>