Selenium Webdriver API(3)
Selenium Webdriver API(3)
23、操作单选下拉框 option
测试网页:test_select.html
operate_select.py
#encoding=utf-8
import unittest
import time
from selenium import webdriver
class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path="D:\\IEDriverServer")
    def test_printSelectText(self):
        #自定义的测试网页
        url = "http://127.0.0.1:8080/test_select.html"
        #访问网页
                self.driver.get(url)
                #使用name属性找到页面上name属性为friut的下拉列表元素
                select = self.driver.find_element_by_name("fruit")
                #将所有的下拉选项存入列表
                all_options = select.find_elements_by_tag_name("option")
                #遍历下拉项列表
                for option in all_options:
                        print u"选项显示的文本:", option.text
                        print u"选项值为:", option.get_attribute("value")
                        option.click()
                    time.sleep(1)
    def tearDown(self):
                self.driver.quit()
if __name__ == "__main__":
    unittest.main()
	
operate_select2.py
#encoding=utf-8
import unittest
import time
from selenium import webdriver
class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
                self.driver = webdriver.Ie(executable_path="D:\\IEDriverServer")
        def test_operateDropList(self):
                #自定义网页url
                url = "http://127.0.0.1:8080/test_select.html"
                #访问自定义网页
                self.driver.get(url)
                #导入select模块
                from selenium.webdriver.support.ui import Select
                #使用xpath定位方式获取select页面元素对象
                select_element = Select(self.driver.find_element_by_xpath("//select"))
                #打印默认选中项的文本
                print select_element.first_selected_option.text
                #获取所有选择项的页面元素对象
                all_options = select_element.options
                #打印选项总数
                print len(all_options)
                """
               is_enabled():判断元素是否可操作
               is_selected():判断元素是否被选中
                """
                if all_options[1].is_enabled() and all_options[1].is_selected():
                        #方法一:通过序号选择第2个元素,序号从0开始
                        select_element.select_by_index(1)
                        #打印已选中项的文本
                        print select_element.all_selected_options[0].text
                        #断言当前选中的选项文本是否为“西瓜”
                        self.assertEqual(select_element.all_selected_options[0].text,u"西瓜")
                    time.sleep(2)
                    #方法二:通过选项的显示文本选择文本为“猕猴桃”选项
                    select_element.select_by_visible_text("猕猴桃")
                    #断言先选中项的文本是否是“猕猴桃”
                    self.assertEqual(select_element.all_selected_options[0].text,u"猕猴桃")
                    time.sleep(2)
                    #方法三:通过选项的value属性值选择value="shanzha"选项
                    select_element.select_by_value("shanzha")
                    print select_element.all_selected_options[0].text
                    self.assertEqual(select_element.all_selected_options[0].text,u"山楂")
    def tearDown(self):
                self.driver.quit()
if __name__ == "__main__":
    unittest.main()
断言:比对下拉选项
assert_select.py
#encoding=utf-8
import unittest
import time
from selenium import webdriver
class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
                #启动IE
                self.driver = webdriver.Ie(executable_path="D:\\IEDriverServer")
    def test_checkSelectText(self):
                url = "http://127.0.0.1:8080/test_select.html"
                #访问自定义html页面
                self.driver.get(url)
                #导入Select模块
                from selenium.webdriver.support.ui import Select
                #使用xpath定位方式获取select页面元素对象
                select_element = Select(self.driver.find_element_by_xpath("//select"))
                #获取所有选择项的页面元素对象
                actual_options = select_element.options
                #声明一个list,存储下拉列表中所期望出现的文字内容
                expect_optionsList = [u"桃子",u"西瓜",u"橘子",u"猕猴桃",u"山楂",u"荔枝"]
                #使用Python内置map()函数获取页面中下拉列表展示的选项内容组成的列表对象
                actual_optionsList = map(lambda option:option.text,actual_options)
                self.assertListEqual(expect_optionsList,actual_optionsList)
    def tearDown(self):
                self.driver.quit()
if __name__ == "__main__":
    unittest.main()	
24、操作多选下拉框
使用Select模块
operate_multiple_select.py
#encoding=utf-8
import unittest
import time
from selenium import webdriver
class VisitLocalByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
                self.driver = webdriver.Ie(executable_path="D:\\IEDriverServer")
    def test_operateMultipleOptionDropList(self):
                url = "http://127.0.0.1:8080/test_multiple_select.html"
                #访问自定义html页面
                self.driver.get(url)
                #导入Select模块
                from selenium.webdriver.support.ui import Select
                #使用xpath定位方式获取select页面元素对象
                select_element = Select(self.driver.find_element_by_xpath("//select"))
                #使用不同方法选中下拉选项
                #通过序号选择第一个选项
                select_element.select_by_index(0)
                #通过选择的文本选择“山楂”选项
                select_element.select_by_visible_text(u"山楂")
                #通过选择的value属性值选择value="mihoutao"的选项
                select_element.select_by_value("mihoutao")
                #打印所有的选中项文本
                for option in select_element.all_selected_options:
                        print option.text
                #取消所有已选中的选项
                select_element.deselect_all()
                time.sleep(2)
                print "===========================再次选中3个选项==========================="
                select_element.select_by_index(1)
                select_element.select_by_visible_text(u"荔枝")
                select_element.select_by_value("juzi")
                #使用不同方法取消选中
                #通过选项文本取消已选中的文本为“荔枝”选项
                select_element.deselect_by_visible_text(u"荔枝")
                #通过序号取消已选中的序号为1的选项
        select_element.deselect_by_index(1)
                #通过选项的value属性值取消行已选中的value="juzi"的选项
                select_element.deselect_by_value("juzi")
    def tearDwon(self):
                self.driver.quit()
if __name__ == "__main__":
    unittest.main()
25、操作可输入的下拉框
使用Keys模块
operate_inputSelect.py
#encoding=utf-8
import unittest
import time
from selenium import webdriver
class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
                #启动IE浏览器
                self.driver = webdriver.Ie(executable_path="D:\\IEDriverServer")
    def test_operateInputDropList(self):
                url = "http://127.0.0.1:8080/test_input_select.html"
                #访问自定义html页面
                self.driver.get(url)
                #导入Keys模块
                from selenium.webdriver.common.keys import Keys
                #通过id获取下拉框并清除
                self.driver.find_element_by_id("select").clear()
                #输入的同时按下箭头键
                self.driver.find_element_by_id("select").send_keys("c")
                self.driver.find_element_by_id("select").send_keys(Keys.ARROW_DOWN)
                self.driver.find_element_by_id("select").send_keys(Keys.ARROW_DOWN)
                self.driver.find_element_by_id("select").send_keys(Keys.ENTER)
    def tearDown(self):
                self.driver.quit()
if __name__ == "__main__":
    unittest.main()
26、操作单选框
#encoding=utf-8
import unittest
import time
from selenium import webdriver
class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
                #启动IE浏览器
                self.driver = webdriver.Ie(executable_path="D:\\IEDriverServer")
    def test_Radio(self):
                url = "http://127.0.0.1:8080/test_radio.html"
                #访问自定义html网页
                self.driver.get(url)
                #使用xpath定位获取value值为“berry”的input元素对象,也就是“草莓”选项
                berryRadio = self.driver.find_element_by_xpath("//input[@value='berry']")
                #点击选择“草莓”选项
                berryRadio.click()
                #断言“草莓”单选框被成功选中
                self.assertTrue(berryRadio.is_selected(),u"草莓单选框未被选中!")
                if berryRadio.is_selected():
                        #如果“草莓”单选框被成功选中,重新选择“西瓜”选项
                        watermelonRadio = self.driver.find_element_by_xpath("//input[@value='watermelon']")
                        watermelonRadio.click()
                        #选择“西瓜”选项以后,断言“草莓”选择处于未被选中状态
                        self.assertFalse(berryRadio.is_selected())
                #查找所有name属性值为fruit的单选按框元素对象,并存放在radioList列表中
                radioList = self.driver.find_elements_by_xpath("//input[@name='fruit']")
                #注意要使用find_elements_by_xpath
                print type(radioList)
                print radioList
                """
                循环遍历radioList中的每个单选按钮,查找value属性值为“orange”的单选框,
                如果找到此单选框以后,发现未处于选中状态,则调用click()方法选中该选项
                """
                for radio in radioList:
                        if radio.get_attribute("value") == "orange":
                                if not radio.is_selected():
                    radio.click()
                                        self.assertEqual(radio.get_attribute("value"),"orange")
    def tearDown(self):
                self.driver.quit()
if __name__ == "__main__":
    unittest.main()
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号