zoukankan      html  css  js  c++  java
  • python3+selenium3学习笔记04---元素定位

    开始前,咱们先来看一张百度web页面,页面上有输入框、按钮和文字链接、图片、下拉框等对象,如下

    按F12(或者鼠标右键,‘检查’)可以网页源代码,

    Webdriver提供了八中元素定位方法,在python语言中,所对应的方法如下:

    find_element_by_id()
    find_element_by_xpath()
    find_element_by_link_text()
    find_element_by_partial_link_text()
    find_element_by_css_selector()
    find_element_by_name()
    find_element_by_tag_name()
    find_element_by_class_name()

    以百度搜索输入框为例

    1:打开百度首页--->F12--->选择元素--->使用鼠标定位到输入框,可以看到对应的元素如调试窗口所示

       

    python脚本如下

    1:find_element_by_id()

    from selenium import webdriver
    import time
    #定义被测网页
    url1 = "https://www.baidu.com/"
    #获取浏览器操作对象
    driver = webdriver.Chrome()
    #设置窗口最大化
    driver.maximize_window()
    #访问被测网页
    driver.get(url1)
    #通过id查找输入框并清空输入框
    driver.find_element_by_id('kw').clear()
    #在输入框中输入'selenium'
    driver.find_element_by_id('kw').send_keys('selenium')
    time.sleep(1)
    #通过id查询'百度一下'按钮,并触发点击事件
    driver.find_element_by_id('su').click()
    #打印title
    print(driver.title)
    #等待1s, 并退出浏览器
    time.sleep(1)
    driver.quit()

    2:find_element_by_name()

    from selenium import webdriver
    import time
    #定义被测网页
    url1 = "https://www.baidu.com/"
    #获取浏览器操作对象
    driver = webdriver.Chrome()
    #设置窗口最大化
    driver.maximize_window()
    #访问被测网页
    driver.get(url1)
    #通过name查找输入框并清空输入框
    driver.find_element_by_name('wd').clear()
    #在输入框中输入'selenium'
    driver.find_element_by_name('wd').send_keys('selenium')
    time.sleep(1)
    #通过name查询'百度一下'按钮,并触发点击事件,因为'百度一下'按钮没有提供name属性,所以次处不能通过name定位
    driver.find_element_by_id('su').click()
    #打印title
    print(driver.title)
    #等待1s, 并退出浏览器
    time.sleep(1)
    driver.quit()

    3:find_element_by_xpath()

    from selenium import webdriver
    import time
    #定义被测网页
    url1 = "https://www.baidu.com/"
    #获取浏览器操作对象
    driver = webdriver.Chrome()
    #设置窗口最大化
    driver.maximize_window()
    #访问被测网页
    driver.get(url1)
    #通过xpath查找输入框并清空输入框
    driver.find_element_by_xapth('//input*[@id="kw"]').clear()
    #在输入框中输入'selenium'
    driver.find_element_by_xpath('//input*[@id="kw"]').send_keys('selenium')
    time.sleep(1)
    #通过xpath查询'百度一下'按钮,并触发点击事件
    driver.find_element_by_xpath('//input*[@id="su"]').click()
    #打印title
    print(driver.title)
    #等待1s, 并退出浏览器
    time.sleep(1)
    driver.quit()

    4:find_element_by_css_selector()

    from selenium import webdriver
    import time
    #定义被测网页
    url1 = "https://www.baidu.com/"
    #获取浏览器操作对象
    driver = webdriver.Chrome()
    #设置窗口最大化
    driver.maximize_window()
    #访问被测网页
    driver.get(url1)
    #通过css查找输入框并清空输入框
    driver.find_element_by_css_selector('#kw').clear()
    #在输入框中输入'selenium'
    driver.find_element_by_css_selector('#kw').send_keys('selenium')
    time.sleep(1)
    #通过css查询'百度一下'按钮,并触发点击事件
    driver.find_element_by_css_selector('#su').click()
    #打印title
    print(driver.title)
    #等待1s, 并退出浏览器
    time.sleep(1)
    driver.quit()
  • 相关阅读:
    微信小程序学习随笔
    SqlServer索引假脱机的解决
    web服务器出现大量CLOSE_WAIT连接的前因后果
    SqlServer和mysql字段拼接方法
    使用beego创建员工加班调休系统
    在c#程序中初步使用redis
    使用golang实现批量发送面试邀请邮件
    记c# rabbitmq的使用
    项目中使用mongodb的尝试
    手机集成支付宝支付功能的注意事项
  • 原文地址:https://www.cnblogs.com/AForever01/p/11306498.html
Copyright © 2011-2022 走看看