zoukankan      html  css  js  c++  java
  • selenium定位元素(python)

    元素定位分为单个元素定位和多个元素定位

    一、单个元素(element)定位

    以百度首页为例(https://www.baidu.com/)

    1.通过id,name定位

     1 # 导入webdriver包
     2 from selenium import webdriver
     3 from time import sleep
     4 
     5 driver = webdriver.Firefox()    #创建火狐对象
     6 driver.get("https://www.baidu.com/")    #打开baidu
     7 driver.find_element_by_name("wd").send_keys("selenium") #通过name定位
     8 driver.find_element_by_id("su").click()   #通过id定位
     9 sleep(5)    #睡眠5毫秒
    10 driver.quit()   #关闭浏览器

    2.通过Xpath定位

    1 driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
    2 driver.find_element_by_xpath("//input[@id='su']").click()

    3.通过css完整路径定位(路径复制同上)

    1 driver.find_element_by_css_selector("html body.zhs.zh-CN table#hp_table tbody tr td#hp_cellCenter.hp_hd div#hp_container div#sbox.sw_sform div.search_controls form#sb_form.sw_box div.b_searchboxForm input#sb_form_q.b_searchbox").send_keys("selenium")#通过css完整路径定位
    2 driver.find_element_by_css_selector("html body.zhs.zh-CN table#hp_table tbody tr td#hp_cellCenter.hp_hd div#hp_container div#sbox.sw_sform div.search_controls form#sb_form.sw_box div.b_searchboxForm input#sb_form_go.b_searchboxSubmit").click()

    4.通过CSS选择器定位

    1 driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")#通过css class定位
    2 driver.find_element_by_css_selector("#su").click()#通过css id定位

    二、多个元素(elements)定位

    基于以下html

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>复选框实例</title>
     6 </head>
     7 <body>
     8 请选择你喜欢的明星</br>
     9     <input type= "checkbox" name = "idol" value = "FBB">范冰冰</br>
    10     <input type= "checkbox" name = "idol" value = "YM">杨幂</br>
    11     <input type= "checkbox" name = "idol" value = "YY">杨颖</br>
    12     <input type= "checkbox" name = "idol" value = "GYY">高圆圆</br>
    13 </body>
    14 </html>

    1.通过elements_tag_name定位一组元素

     1 #!/usr/bin/env python
     2 # _*_ coding:utf-8 _*_
     3 # 导入webdriver包
     4 from selenium import webdriver
     5 from time import sleep
     6 driver = webdriver.Firefox()    #创建火狐对象
     7 driver.get("file:///C:/Users/Administrator/Desktop/idol.html")
     8 inputs = driver.find_elements_by_tag_name("input")
     9 for i in inputs:
    10     if i.get_attribute("type") == "checkbox":
    11         i.click()
    12         sleep(1)
    13 sleep(2)
    14 driver.quit()   #关闭浏览器

    2.通过elements_by_Xpath定位一组元素

     1 #!/usr/bin/env python
     2 # _*_ coding:utf-8 _*_
     3 # 导入webdriver包
     4 from selenium import webdriver
     5 from time import sleep
     6 driver = webdriver.Firefox()    #创建火狐对象
     7 driver.get("file:///C:/Users/Administrator/Desktop/idol.html")
     8 checkboxs = driver.find_elements_by_xpath('//*[@name="idol"]')
     9 for checkbox in checkboxs:
    10     checkbox.click()
    11     sleep(1)
    12 sleep(2)
    13 driver.quit()   #关闭浏览器
  • 相关阅读:
    mybatis date类型比较
    搭建 c 语言环境 1_centos6 minimal 配置 c/c++ 编译环境
    2_eclipse配置c/c++环境
    1_eclipse导入hibernate 的DTD 文件
    1_eclipse配置c/c++开发环境
    2_修改Eclipse里面的快捷键
    1_修改注释内容
    8_对象创建、static 关键字、静态变量和成员变量的区别、文档
    7_匿名对象、封装(private)、this 关键字、构造方法
    6_面向对象基础、成员变量和局部变量的区别
  • 原文地址:https://www.cnblogs.com/zhangyating/p/7999399.html
Copyright © 2011-2022 走看看