• selenium采用find_element_by方法识别页面元素


      主要是练习获取页面中的各元素,马克

     1 # coding:utf-8
     2 import time
     3 from selenium import webdriver
     4 import unittest
     5 from pythontest.commlib.baselib import *
     6 
     7 #引用封装后的日志系统
     8 log = TestLog().getlog()
     9 class BaiBu(unittest.TestCase):
    10     u'''【百度.类】'''
    11     def setUp(self):
    12         self.browser = webdriver.Firefox()
    13         self.browser.get("http://www.baidu.com")
    14         self.browser.implicitly_wait(10)
    15         #self.base = Screen(self.browser)
    16 
    17     def tearDown(self):
    18         self.browser.quit()
    19 
    20     def test_search(self):
    21         u'''采用id,class,name等属性识别元素'''
    22         #<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    23         #<input id="su" value="百度一下" class="bg s_btn" type="submit">
    24         #识别id属性
    25         self.browser.find_element_by_id("kw").send_keys("python")
    26         self.browser.find_element_by_id("su").submit()
    27         print self.browser.title
    28         self.assertEqual(self.browser.title,u"百度一下,你就知道")
    29         log.info("识别id属性,执行[find_element_by_id]")
    30 
    31         time.sleep(3)
    32 
    33         #识别name属性 <input id="su" value="百度一下" class="bg s_btn" type="submit">
    34         self.browser.find_element_by_name("wd").clear()     #清空原关键字
    35         self.browser.find_element_by_name("wd").send_keys("python logging")
    36         # class属性是比较特殊的一个,属性值可以有多个,中间是用空格隔开的
    37         #self.browser.find_element_by_class_name("bg s_btn").submit()  #使用class_name会报错
    38         #self.browser.find_element_by_class_name("s_btn").submit()      #第一种解决办法:class值取其中之一
    39         #self.browser.find_element_by_class_name("bg").submit()          #第一种解决办法:class值取其中之一
    40         self.browser.find_element_by_css_selector(".bg.s_btn").submit()          #第二种解决办法:使用css.selector,每个class值前面加.
    41         log.info("识别name属性,执行[find_element_by_name]")
    42         time.sleep(3)
    43 
    44         #识别class属性
    45         self.browser.find_element_by_name("wd").clear()  # 清空原关键字
    46         self.browser.find_element_by_class_name("s_ipt").send_keys("selenium webdriver")
    47         self.browser.find_element_by_class_name("s_btn").submit()
    48         log.info("识别class属性,执行[find_element_by_class_name]")
    49         time.sleep(3)
    50 
    51     def test_xpath(self):
    52         u'''采用xpath识别元素'''
    53         self.browser.find_element_by_xpath(".//*[@id='kw']").send_keys("xpath test")        #采用id
    54         self.browser.find_element_by_xpath(".//*[@id='su']").submit()           #采用id
    55         log.info("采用xpath识别页面中的属性,[id]")
    56 
    57         self.browser.find_element_by_xpath(".//*[@name='wd']").clear()  # 清空原关键字        #采用name
    58         self.browser.find_element_by_xpath(".//*[@class='s_ipt']").send_keys("selenium auto test")        #采用class
    59         self.browser.find_element_by_xpath(".//*[@type='submit']").submit()     #采用type
    60         log.info("采用xpath识别页面中的属性,[class、type]")
    61 
    62 
    63 
    64 if __name__ == "__main__":
    65     unittest.main()

    运行结果:

  • 相关阅读:
    问题记录之spring-mvc.xml配置文件报错
    问题记录之用poi生成图片并插入到word时,图片中的中文显示不出来
    问题记录之每次打开vmware的时候都会跳出xftp的安装程序问题解决
    DataTable和List之间互转
    .NET[C#]中实现实体对象深拷贝(克隆/复制)的几种方法
    SQL Server表分区详解(转)
    vs2017使用GitHub插件发布项目到github
    jquery autocomplete 在IE11中出现打开网页输入框有默认值时下拉列表是已经打开的状态解决
    MVC DropDownLis 二级联动实现
    sql 查询某个表在哪些存储过程(SP)中使用到
  • 原文地址:https://www.cnblogs.com/zhuque/p/8321481.html
Copyright © 2020-2023  润新知