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()
  • 相关阅读:
    Linux共享irq的实现描述
    GStreamer使用playbin,如何给动态生成的source组件设置属性?
    如何从H.263 raw data中取出视频的宽高以及Framerate
    GStreamer pipeline的basetime是如何计算出来的?
    GstPad setcaps,getcaps,set_setcaps_function...caps协商解说
    使用aplay播放一个PCM?PCM和WAV文件的区别?
    GStreamer中对RTP包seqnum是否wraparound的判断只用一句代码
    GStreamer如何让videosink在指定的窗口进行图像绘制?
    GStreamer如何获取播放的duration和当前的播放position?
    函数声明与函数表达式
  • 原文地址:https://www.cnblogs.com/AForever01/p/11306498.html
Copyright © 2011-2022 走看看