selenium webdriver(python篇)学习(四)-------定位页面元素

上一篇 / 下一篇  2012-11-03 15:53:45 / 个人分类:webdriver

selenium-webdriver提供了强大的元素定位方法,支持以下三种方法。

  • 单个对象的定位方法
  • 多个对象的定位方法
  • 层级定位
这里主要说个单个对像定位的方法:
例如:51用户名输入的代码为<input id="username" class="inputword" type="text" style="height:12px;" name="username">

1、id 定位

driver.find_element_by_id("username")
2、name定位
driver.find_element_by_name("username")
3、CSS定位
driver.find_element_by_css_name("inputword")但是此处通过CSS不能唯一定位
4、Xpath定位
dirver.find_element_by_xpath("//input[@id='username' and @name='username']")
xpath定位速度相对比较慢,一般在上面三种定位都不能唯一定位的情况下使用xpath


python定位多个对像的方法为driver.find_elements_   下面还是给一个例子来说明。
#-*-coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.51testing.com/"
        self.verificationErrors = []
    
    def test_51login(self):
        driver = self.driver
        driver.get(self.base_url + "/html/index.html")
        driver.find_element_by_id("username").send_keys("dj7491916")
        driver.find_element_by_id("userpass").send_keys("y0031936")
        driver.find_element_by_id("dologin").click()
        verify=raw_input("诅输入你看到的验证码按enter键:")
        driver.find_element_by_id("xspace-seccode").send_keys(verify)
        driver.find_element_by_id("securitysubmit").click()
        firstelement=driver.find_element_by_class_name("xboxcontent")
        el=firstelement.find_elements_by_tag_name("a")
        for e in el:
            print e.text
   
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

运行上面代码,你会看到输出的是class='xboxcontent'下面所有a标签下面的文本。

TAG: Python python webdriver WebDriver 元素定位

 

评分:0

我来说两句

Open Toolbar