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()
  • 相关阅读:
    TensorflowJS 教程
    理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
    Wireshark 过滤 基本语法
    LSTM如何解决梯度消失或爆炸的?
    K-Means ++ 和 kmeans 区别
    LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数
    python 多进程练习 调用 os.system命令
    TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议
    ssl tls 证书链 根证书和叶证书查询
    TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版
  • 原文地址:https://www.cnblogs.com/AForever01/p/11306498.html
Copyright © 2011-2022 走看看