• 2019-02-07 selenium...


    今天是超级郁闷的一天
    看教程
    下了mysql-----配置-----不会----查资料------2小时后

    mongodb-----配置------不会------查资料------1小时后

    然后是各种相关软件的下载配置—然后懒得搞了。。

    于是乎开始看
    selenium
    简单的模拟一下chrome----报错

    from selenium import webdriver
    
    browser = webdriver.Chrome()
    
    browser.get("http://www.baidu.com")
    print(browser.page_source)
    browser.close()
    

    甩一个

    'chromedriver' executable needs to be in PATH
    

    ok,发现没下载chromedriver-----下载------版本错了-----继续下载----环境变量配置------还是不行-----百度-------循环上述操作------最后发现需要手动加路径

    from selenium import webdriver
    
    browser = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver')
    browser.get("http://www.baidu.com")
    print(browser.page_source)
    browser.close()
    

    看到百度一闪而过…???
    成功了哈哈哈哈

    但是我今天学了些啥呢??

    果然还是心急吃不了热豆腐,不要想着一天就能搞定一个东西,循序渐进吧。。。

    """
    selenium
    自动化测试工具,支持多种浏览器
    爬虫中主要用来解决javascript渲染的问题
    """
    import time
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    
    #声明浏览器对象
    browser = webdriver.Chrome('C:Program Files (x86)GoogleChromeApplicationchromedriver')
    """
    还有Firefox,Edge,Safari.....
    """
    try:
        # 访问页面
        browser.get(r"https://www.taobao.com")
    
        # 查找元素
        input = browser.find_element_by_id('q')    # 找到名字为kw的元素
        """
        可选:
        find_element_by_[name,xpath,link_text,partial_link_text,tag_name,class_name,css_selector]
        或者
        find_element(By.ID,'q')
        如果要获取多个元素:
        find_elements 即可,其他同上
        """
    
        # 元素交互操作
        input.send_keys('Python')   # 模拟键盘敲入Python
        time.sleep(1)
        input.send_keys('ipad')
        time.sleep(1)
        input.send_keys(Keys.ENTER)
        """
    1.clear()
    
    用途:清除文本,如在输入用户名、密码之前,清除相应的输入框
    
    语法:element.clear()
    
    2.sendkeys()
    
    用途:模拟用户输入,如输入用户名、密码等。
    
    语法:element.sendkeys("123"),向输入框中输入123
    
    3.click()
    
    用途:模拟用户点击,如点击登录按钮。
    
    语法:element.click()
    
    4.submit()
    
    用途:用于提交表单,如在搜索框输入关键字后,点击回车,就可以通过submit()模拟。
    
    语法:element.submit()
    
    5.size
    
    用途:获取元素的尺寸,如:UI测试时,要获取输入框的尺寸,就可以用size方法。
    
    语法:element.size
    
    6.text
    
    用途:获取元素文本信息,如输入不合法信息,提交表单,可以用text获取提示信息。
    
    语法:element.text
    
    7.get_attribute()
    
    用途:获取元素的属性,可以用于获取元素的id、name、type等任意属性。
    
    语法:element.get_attribut("id"),获取改元素的id。
    
    8.is_displayed()
    
    用途:设置元素用户是否可见,返回结果为Ture或False
    
    语法:element.is_dispiayed()
    
    from 高可乐的爸爸
        """
    
    # 交互动作:将动作附加到动作链中串行执行
    # 执行JS:通过js代码执行相关操作(万能)
    
    #等待:
    #隐式等待和隐式等待
        wait = WebDriverWait(browser,10)
        wait.until(EC.presence_of_element_located((By.ID,'content_left')))  #等待加载
    
    """
    前进后退
    选项卡管理
    cookies
    异常处理
    """
    
        print(browser.current_url)
        print(browser.get_cookies())
        print(browser.page_source)
    finally:
        browser.close()
    
    

    ohohohohoh what a weary day

  • 相关阅读:
    linux下后台执行shell脚本nohup
    notepad++常用命令
    dmidecode查看硬件信息
    CSV文件自动化(自定义参数)
    服务器数据恢复案例分享-硬盘掉线恢复
    DELL EqualLogic PS6100存储硬盘坏道数据恢复
    成功恢复某服务器丢失数据过程
    分析Linux raid6同步成raid5导致数据丢失的情况
    服务器RAID硬盘离线和数据库损坏数据恢复方法
    chkdsk 后数据丢失的恢复方法
  • 原文地址:https://www.cnblogs.com/roccoshi/p/13027095.html
Copyright © 2020-2023  润新知