zoukankan      html  css  js  c++  java
  • Webdriver元素定位3(CSS)

    Selenium极力推荐使用CSS 定位,而不是XPath来定位元素,原因是CSS 定位比XPath 定速度快,语法也更加简洁。

    CSS常用定位方法

    选择器 例子 描述
    .class .intro class选择器,选择class=“intro”的所有元素
    #id #firstname id选择器,选择id=“firstname”的所有元素
    * * 选择所有元素
    element p 元素所有<p>元素
    element>element div>input 选择父元素为<div>的所有<input>元素
    element+element div+input 选择同一级中紧接在<div>元素之后的所有<input>元素
    [attribute=value] [target=_blank] 选择target="_blank"的所有元素

    通过前端工具获取到百度首页的代码,部分如下所示:

    <span class="bg s_ipt_wr quickdelete-wrap">
        <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd">
        <a id="quickdelete" class="quickdelete" href="javascript:;" title="清空" style="top: 0px; right: 0px; display: none;"></a>
    </span>
        <span class="bg s_btn_wr">
        <input id="su" class="bg s_btn" type="submit" value="百度一下">
    </span>

    案例:在百度首页的搜索框输入selenium,点击搜索按钮


    通过class属性定位

    from selenium import webdriver
    from time import sleep
    
    driver=webdriver.Firefox()
    driver.get("http://www.baidu.com")
    sleep(2)
    
    driver.find_element_by_css_selector(".s_ipt").send_keys("selenium")
    sleep(2)
    driver.find_element_by_id("su").click()
    driver.quit()

    通过id属性定位

    driver.find_element_by_css_selector("#kw").send_keys("selenium")

    通过属性定位

    driver.find_element_by_css_selector("[autocomplete='off']").send_keys("selenium")

    通过元素层级定位

    driver.find_element_by_css_selector("form#form>span>input").send_keys("selenium")
    #可以组合
    driver.find_element_by_css_selector("form#form>span>input[autocomplete='off']").send_keys("selenium")
  • 相关阅读:
    更改PHP配置文件php.ini解决xmlhttp的utf8乱码
    php 单引号 双引号 区别
    zend soap looks like we got no XML document
    使用UltraEdit32编辑器格式化源码功能 XML、Java、C/C++、C#
    php str_replace 单引号 双引号 区别
    PHP将XML文件转换成PHP数组
    简述PHP4和PHP5版本下解析XML文档的操作方法
    HowTo: Fix SimpleXML CDATA problem in php
    XML中 CDATA and PCDATA 的区别
    php 生成xml 的四种方式
  • 原文地址:https://www.cnblogs.com/NancyRM/p/8110200.html
Copyright © 2011-2022 走看看