• 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")
  • 相关阅读:
    top命令
    MySQL基准测试(三)--开源工具与实例演示
    MySQLdump之single-transaction详解
    牛刀小试MySQL--日志文件
    MySQL基准测试(二)--方法
    MySQL基准测试(一)--原因,策略,思路
    MySQL实验准备(二)--Python模拟数据(MySQL数据库)
    MySQL实验准备(一)--环境准备
    InnoDB存储引擎概览
    单机多实例mysq 8.0l部署安装
  • 原文地址:https://www.cnblogs.com/NancyRM/p/8110200.html
Copyright © 2020-2023  润新知