• selenium学习笔记(xpath和css定位)


    简单的介绍下xpath和css的定位

    理论知识就不罗列了

    还是利用博客园的首页、直接附上代码:

    这个是xpath

     1 #!/usr/bin/env python
     2 # -*- coding: utf_8 -*-
     3 
     4 from learn_webdriver import Webdriver
     5 from selenium import webdriver
     6 from selenium.webdriver.common.action_chains import ActionChains
     7 from time import sleep
     8 
     9 browser_chrome = webdriver.Chrome(Webdriver.chrome())
    10 browser_chrome.get("http://www.cnblogs.com/")
    11 
    12 sleep(2)
    13 ActionChains(browser_chrome).move_to_element(browser_chrome.find_element_by_xpath(".//li[@id='cate_item_2']")).perform()
    14 # 鼠标悬停在左侧“编程语言”导航栏上
    15 browser_chrome.find_element_by_xpath(".//a[@href='/cate/python/']").click()
    16 sleep(2)
    17 browser_chrome.quit()

    XPath 是一门在 XML 文档中查找信息的语言

    使用的是函数是  find_element_by_xpath

    这里总结了xpath的表达式:

    表达式

    说明

    案例

    节点名称

    选取节点下所有子节点

    body

    body下所有子节点

    /

    从根节点选取

    body/div

    body下所有div节点

    //

    匹配选择节点

    不考虑位置

    //div

    不考虑位置的div节点

    .

    当前节点

    ..

    当前节点的父节点

    @

    选取属性

    .//li[@id='cate_item_2']

     li节点 且属性id=cate_item_2

    下面是css

     1 #!/usr/bin/env python
     2 # -*- coding: utf_8 -*-
     3 
     4 from learn_webdriver import Webdriver
     5 from selenium import webdriver
     6 from selenium.webdriver.common.action_chains import ActionChains
     7 from time import sleep
     8 
     9 browser_chrome = webdriver.Chrome(Webdriver.chrome())
    10 browser_chrome.get("http://www.cnblogs.com/")
    11 
    12 sleep(2)
    13 ActionChains(browser_chrome).move_to_element(browser_chrome.find_element_by_css_selector("li[id = 'cate_item_2']")).perform()
    14 # 鼠标悬停在左侧“编程语言”导航栏上
    15 browser_chrome.find_element_by_css_selector("a[href = '/cate/python/").click()
    16 sleep(2)
    17 browser_chrome.quit()

    css更加灵活一些

    css使用的函数是 find_element_by_css_selector

  • 相关阅读:
    spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
    在zepplin 使用spark sql 查询mongodb的数据
    Unable to query from Mongodb from Zeppelin using spark
    spark 与zepplin 版本兼容
    kafka 新旧消费者的区别
    kafka 新生产者发送消息流程
    spark ui acl 不生效的问题分析
    python中if __name__ == '__main__': 的解析
    深入C++的new
    NSSplitView
  • 原文地址:https://www.cnblogs.com/cllovewxq/p/5435379.html
Copyright © 2020-2023  润新知