zoukankan      html  css  js  c++  java
  • Selenium的使用

    selenium现在最新的版本为3.0.1,以此为标准进行讲解。selenium官方地址为https://www.seleniumhq.org/

    • pip install selenium==3.0.1

    • 调用浏览器必须下载一个类似补丁的文件,比如Firefox的为geckodriver,详细官网有:[https://www.seleniumhq.org/download/],根据自己操作系统,下载指定的驱动文件。

    • 接着配置环境变量,在shell中执行export PATH = $PATH:/home/....../geckodriver.exe(在window我测试不能通过path和绝对路经来引用,只能通过相对路径,),代码如下:

    #selenium.webdriver 模块提供了所有WebDriver的实现,
    #当前支持的WebDriver有: Firefox, Chrome, IE and Remote。 `Keys`类提供键盘按键的支持,比如:RETURN, F1, ALT等
    
    
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    
    driver = webdriver.Firefox(executable_path='..geckodriver.exe')
    driver.get("http://www.baidu.com")
    
    #下一行是用assert的方式确认标题是否包含“Python”一词。 (译注:assert 语句将会在之后的语句返回false后抛出异常,详细内容可以自行百度)
    
    assert u'百度' in driver.title
    elem = driver.find_element_by_name("wd")
    
    #接下来,我们发送了一个关键字,这个方法的作用类似于你用键盘输入关键字。 特殊的按键可以使用Keys类来输入,该类继承自 selenium.webdriver.common.keys, 为了安全起见,我们先清除input输入框中#的任何预填充的文本(例如:”Search”),从而避免我们的搜索结果受影响:
    
    elem.clear()
    elem.send_keys(u"网络爬虫")
    elem.send_keys(Keys.RETURN)
    time.sleep(3)
    
    
    assert u'网络爬虫' not in driver.page_source
    
    #关闭浏览器窗口,你还可以使用quit方法代替close方法, quit将关闭整个浏览器,而_close——只会关闭一个标签页, 如果你只打开了一个标签页,大多数浏览器的默认行为是关闭浏览器
    
    driver.close()
    
    
    

    运行成功会自动调用Firefox访问百度,并且需要selenium 版本达到3.7.0以上,不然调用出Firefox,但访问百度出错,升版本'pip install -U selenium'

    元素选取

    • 要想对页面进行操作,首先做的是选中页面元素,方法如下表
    定位一个元素 定位多个元素 含义
    find_element_by_id find_elements_by_id
    find_element_by_name find_elements_by_name 元素名称
    find_element_by_xpath find_elements_by_xpath XPath表达式
    find_element_by_link_text find_elements_by_link_text 超链接文本
    find_element_by_partial_link_text find_elements_by_partial_link_text 部分超链接文本
    find_element_by_tag_name find_elements_by_tag_name 标记名称
    find_element_by_class_name find_elements_by_class_name 类名
    find_element_by_css_selector find_elements_by_css_selector css选择器
    • 除了上述的公共方法,下面还有两个私有方法,在你查找也页面元素的时候也许有用。 他们是 find_element 和 find_elements 。
    from selenium.webdriver.common.by import By
    
    driver.find_element(By.XPATH, '//button[text()="Some text"]')
    driver.find_elements(By.XPATH, '//button')
    
    • 下面是 By 类的一些可用属性:
    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"
    

    详细点击:https://selenium-python-zh.readthedocs.io/en/latest/locating-elements.html

    页面操作

  • 相关阅读:
    【数据库开发】在Windows上以服务方式运行 MSOPenTech/Redis
    【数据库开发】在Windows上以服务方式运行 MSOPenTech/Redis
    【数据库开发】windows环境下通过c++使用redis
    【数据库开发】windows环境下通过c++使用redis
    【VS开发】【miscellaneous】windows(64位)下使用curl命令
    【VS开发】【miscellaneous】windows(64位)下使用curl命令
    【数据库开发】windows下使用c++调用redis
    【数据库开发】windows下使用c++调用redis
    【VS开发】【miscellaneous】 Windows下配置Git
    【VS开发】【miscellaneous】 Windows下配置Git
  • 原文地址:https://www.cnblogs.com/guguobao/p/9576394.html
Copyright © 2011-2022 走看看