三、WebDriver定位元素
推荐使用的webdriver是firefox,因为他的firebug更能可以帮助定位页面元素使用
# create a new Firefox session
cls.driver = webdriver.Firefox()
1、通过id定位
可以通过find_element_by_id()方法来定位元素
#通过id定位
self.driver.find_element_by_id("hl").click()
self.driver.find_element_by_id("m1").click()
2、通过name定位
可以通过find_element_by_name()方法来定位元素
#通过name定位
self.driver.find_element_by_name("panel").click()
self.driver.find_element_by_name("find").click()
3、通过class定位
可以通过find_element_by_class_name()方法来定位元素
#通过class定位
self.driver.find_element_by_ class_name("panel panel-default").click()
self.driver.find_element_by_ class_name("panel-body").click()
4、通过tag定位
可以通过find_element_by_tag_name()方法来定位元素
#通过tag定位
self.driver.find_element_by_ tag_name("input").click()
self.driver.find_element_by_ tag_name("tag_name").click()
5、通过link定位
可以通过find_element_by_link_text()方法来定位元素
#link定位
self.driver.find_element_by_link_text("新闻").click()
self.driver.find_element_by_ link_text("贴吧").click()
6、通过XPath定位
可以通过find_element_by_xpath()方法来定位元素,其中包括绝对路径定位、元素属性定位、层级与属性结合定位、逻辑运算符定位
#绝对路径定位
self.driver.find_element_by_xpath("/div/div[2]/div/div/div[2]/div").clear()
#元素属性定位
self.assertEqual(self.driver.find_element_by_xpath("//div[@class='modal-content']//div[@class='modal-header']//div[@class='bootstrap-dialog-header']//div[@class='bootstrap-dialog-title']").text,u"插入链接")
#层级与属性结合定位
self.driver.find_element_by_xpath("//div[@class='editor-tool-bar']/div[2]/button").send_keys('C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg')
#逻辑运算符定位
self.driver.find_element_by_xpath("//div[@class='form-group' and @id=’form’]//input[@id='ILD_linkText']").send_keys(u"贵金属主站")