1. %r
如果我们不确定变量类型的话可以使用%r,它的含义是“不管什么都打印出来”。
2. 关于中文字符
python 是个容易出现编码问题的语言,有时候当我们在send_keys()方法中输入中文时,然后脚本在运行时就报编码错误,这个时候我们可以在脚本开头声明编码为utf-8,然后在中文字符的前面加个小u 就解决了(表示转成python Unicode 编码):
#coding=utf-8
send_keys(u"中文内容")
需要注意的是utf-8并不是万能的,如果utf-8不能解决,可以尝试将编码声明为GBK
3. 鼠标操作
click()来模拟鼠标的单击操作,而我们在实际的web 产品测试中发现,有关鼠标的操作,不单单只有单击,有时候还要和到右击,双击,拖动等操作,这些操作包含在ActionChains 类中。
ActionChains 类鼠标操作的常用方法:
click() 单击
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 鼠标悬停在一个元素上
click_and_hold() 按下鼠标左键在一个元素上
#引入ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains .... #定位到要右击的元素 right =driver.find_element_by_xpath("xx") #对定位到的元素执行鼠标右键操作 ActionChains(driver).context_click(right).perform()
4. 键盘事件
webdriver 的Keys()类提供键盘上所有按键的操作,甚至可以模拟一些组合建的
操作,如Ctrl+A ,Ctrl+C/Ctrl+V 等。在某些更复杂的情况下,还会出现使用send_keys 来模拟上下键
来操作下拉列表的情况。
#coding=utf-8 from selenium import webdriver #引入Keys 类包 from selenium.webdriver.common.keys import Keys import time driver = webdriver.Firefox() driver.get("http://www.baidu.com") #输入框输入内容 driver.find_element_by_id("kw1").send_keys("seleniumm") time.sleep(3) #删除多输入的一个m driver.find_element_by_id("kw1").send_keys(Keys.BACK_SPACE) time.sleep(3) driver.find_element_by_id("kw1").send_keys(Keys.SPACE) driver.find_element_by_id("kw1").send_keys(u"教程") time.sleep(3) #ctrl+a 全选输入框内容 driver.find_element_by_id("kw1").send_keys(Keys.CONTROL,'a') time.sleep(3) #ctrl+x 剪切输入框内容 driver.find_element_by_id("kw1").send_keys(Keys.CONTROL,'x') time.sleep(3) #输入框重新输入内容,搜索 driver.find_element_by_id("kw1").send_keys(Keys.CONTROL,'v') time.sleep(3) #通过回车键盘来代替点击操作 driver.find_element_by_id("su1").send_keys(Keys.ENTER) time.sleep(3) driver.quit()