【Python+Selenium基本语法 及 小案例测试】

Python+Selenium基本语法 及 小案例测试

  • 小案例 博客登录成功测试

    from time import sleep
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get('http://localhost:8080/gugu/login.jsp')
    sleep(3)
    driver.find_element_by_id('L_username').send_keys('tom')
    sleep(3)
    driver.find_element_by_id('yang').send_keys('123')
    sleep(3)
    driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__submit"]').click()
    sleep(5)
    driver.quit()
    
    
    
    from time import sleep
    #导包 webdriver
    from selenium import webdriver
    #获取Chrome浏览器对象:
    driver=webdriver.Chrome()
    #打开百度
    driver.get('http://www.baidu.com')
    #暂停3秒
    sleep(3)
    driver.find_element_by_xpath('//*[@id="u1"]/a').click()
    sleep(3)
    driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__footerULoginBtn"]').click()
    sleep(3)
    driver.find_element_by_id('TANGRAM__PSP_11__userName').send_keys('15155256225')
    sleep(3)
    driver.find_element_by_id('TANGRAM__PSP_11__password').send_keys('2324480129g')
    sleep(3)
    driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__submit"]').click()
    sleep(5)
    #//*[@id="u1"]/a
    #关闭浏览器驱动
    driver.quit()
    
    
  • 元素定位

    自动化的核心是定位元素,Selenium提供了八种定位元素的方法,常见如下:

    1、定位单个元素

    • id定位:driver.find_element_by_id()
    • name定位:driver.find_element_by_name()
    • class定位:driver.find_element_by_class_name()
    • link定位:driver.find_element_by_link_text()
    • partial link定位:driver.find_element_by_partial_link_text()
    • tag定位:driver.find_element_by_tag_name()
    • css定位:driver.find_element_by_css_selector()
    • xpath定位:driver.find_element_by_xpath()

    2、定位一组元素取下标定位

    • id定位:driver.find_elements_by_id()[]
    • name定位:driver.find_elements_by_name()[]
    • class定位:driver.find_elements_by_class_name()[]
    • link定位:driver.find_elements_by_link_text()[]
    • partial link定位:driver.find_elements_by_partial_link_text()[]
    • tag定位:driver.find_elements_by_tag_name()[]
    • css定位:driver.find_elements_by_css_selector()[]
    • xpath定位:driver.find_elements_by_xpath()[]

    3、class定位

    class定位主要是利用元素的css样式表所引用的伪类名称来进行元素查找,实际定位时,会经常发现一个元素的class name是由多个class组成的复合类,以空格隔开

    class含空格解决办法有

    (1)class属性唯一但有空格,选择空格两边唯一的那一个

    (2)空格隔开的class不唯一,用索引定位

    (3)通过css方法定位,空格用.代替

    4、xpath定位

    xpath就是XML path,可以用xpath来定位html文档中的任意元素,xpath定位是对整个文档进行扫描来定位元素,效率比较低

    • a.xpath有绝对路径和相对路径,绝对路径用/,相对路径用//
    • b.xpath以/开头表示让解析引擎从文档的根节点开始,以//开头表示让解析引擎从文档的任意符合的元素节点开始解析
    • c.xpath路径中有/表示寻找父节点的直接子节点,路径中有//表示寻找父节点所有符合的子节点

    5、css定位

    css定位和xpath定位类似,但是css执行速度比较快

    6、xpath和css定位
    在这里插入图片描述


  • 细节讲解:

    ###### *具体解析:
    # send_keys():输入文字
    # clear():清除文字
    # click():点击按钮
    
    
    from time import sleep
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get('http://localhost:8080/gugu/login.jsp')
    sleep(3)
    driver.find_element_by_id('L_username').send_keys('tom')
    sleep(3)
    driver.find_element_by_id('yang').send_keys('123')
    sleep(3)
    driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__submit"]').click()
    sleep(5)
    driver.quit()
    ---------------------------------------------------
    from time import sleep
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get('http://www.baidu.com')
    sleep(3)
    driver.find_element_by_xpath('//*[@id="u1"]/a').click()
    sleep(3)
    driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__footerULoginBtn"]').click()
    sleep(3)
    driver.find_element_by_id('TANGRAM__PSP_11__userName').send_keys('15155256225')
    sleep(3)
    driver.find_element_by_id('TANGRAM__PSP_11__password').send_keys('2324480129g')
    sleep(3)
    driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__submit"]').click()
    sleep(5)
    #//*[@id="u1"]/a
    #关闭浏览器驱动
    driver.quit()
    ---------------------------------------------------
    from time import sleep
    from selenium import webdriver			
    browser = webdriver.Chrome()			#声明浏览器对象
    browser.get('http://www.baidu.com')   # 使用get方法请求百度网页
    sleep(3)
    input = browser.find_element_by_id('kw')
    sleep(3)
    input.send_keys('this')
    sleep(3)
    browser.find_element_by_id('su').click()
    sleep(5)				#延时等待
    
    print(input)
    # 获取节点id
    print(input.id)
    # 获取节点在页面的相对位置
    print(input.location)
    # 获取节点标签名称
    print(input.tag_name)
    # 获取节点大小
    print(input.size)
    
    print(input)
    print(input.text)
    
    browser.close()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值