zoukankan      html  css  js  c++  java
  • webdriver之富文本,Firefox配置加载

    chrome驱动下载:http://chromedriver.storage.googleapis.com/index.html

    加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载,

    profile_directory既为浏览器配置文件的路径地址

    二、FirefoxProfile

    1.要想了解selenium里面API的用法,最好先看下相关的帮助文档打开cmd窗口,

    输入如下信息:
    -》python

    -》from selenium import webdriver

    -》help(webdriver.FirefoxProfile)

    Help on class FirefoxProfile in module

    selenium.webdriver.firefox.firefox_profile:

    class FirefoxProfile(builtin.object)
    | Methods defined here:
    |
    init(self, profile_directory=None)
    | Initialises a new instance of a Firefox Profile

    | :args:
    | - profile_directory: Directory of profile that you want to use.
    | This defaults to None and will create a new
    | directory when object is created.

    2.翻译过来大概意思是说,这里需要profile_directory这个配置文件路径的参数

    3.profile_directory=None,如果没有路径,默认为None,启动的是一个新的,

    有的话就加载指定的路径。

    三、profile_directory

    1.问题来了:Firefox的配置文件地址如何找到呢?
    
    2.打开Firefox点右上角设置>?(帮助)>故障排除信息>显示文件夹

    四、启动配置文件

    1.由于文件路径存在字符: ,反斜杠在代码里是转义字符,这个有点代码基础的应该都知道。
    2.遇到转义字符,为了不让转义,有两种处理方式:

    第一种: (前面再加一个反斜杠)

    第二种:r”"(字符串前面加r,使用字符串原型)

    
    
     1 from selenium import webdriver
     2 import time
     3 # 加载Firefox配置文件,可免登录
     4 profile_directory = r'C:Usersct-wylAppDataRoamingMozillaFirefoxProfileslt6n8ynh.default'
     5 profile = webdriver.FirefoxProfile(profile_directory)
     6 webdriver = webdriver.Firefox(profile)
     7 blogurl = 'https://www.cnblogs.com'
     8 yanrublog = blogurl + r'/FlyToDream'
     9 webdriver.get(yanrublog)
    10 # 点击新随笔
    11 webdriver.find_element_by_id('blog_nav_newpost').click()
    12 time.sleep(2)
    13 edittitle = u'pythong+selenium自动创建随笔'
    14 editbody = '这里是发帖区域,赶紧写下你的思绪'
    15 webdriver.find_element_by_id('Editor_Edit_txbTitle').send_keys(edittitle)
    16 # 第一种写法:通过切换iframe
    17 # iframe = webdriver.find_element_by_id('Editor_Edit_EditorBody_ifr')
    18 # webdriver.switch_to.frame(iframe)
    19 # webdriver.find_element_by_id('tinymce').send_keys(editbody)   # 富文本区输入内容
    20 # webdriver.switch_to.default_content()
    21 # 第二种,通过js编辑富文本内容
    22 js = 'document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML="%s"'%editbody
    23 webdriver.execute_script(js)
    24 webdriver.find_element_by_id('Editor_Edit_lkbPost').click()   #发布
    
    
    
     



  • 相关阅读:
    sge的简单的应用
    dcoker 小应用(二)
    浅谈Docker(二)
    查看Linux版本
    dcoker 小应用(一)
    linux 强制重启!
    浅谈Docker(一)
    ubuntu command
    简析hotjar录屏功能实现原理
    实现node端渲染图表的简单方案
  • 原文地址:https://www.cnblogs.com/FlyToDream/p/10734613.html
Copyright © 2011-2022 走看看