zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    CodeForces 576E Paingting Edges
    CodeForces 1361D Johnny and James
    agc027_d Modulo Matrix
    agc046_f Forbidden Tournament
    MySQL架构及优化原理
    Ubuntu下无法安装pip
    WSL安装问题----wslregisterdistribution failed with error: 0x8007007b
    基础排序算法总结(一)
    透明代理、匿名代理、混淆代理、高匿代理
    常见“加密”算法之 base64
  • 原文地址:https://www.cnblogs.com/test-chen/p/10338491.html
Copyright © 2011-2022 走看看