• 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()   #发布
    
    
    
     



  • 相关阅读:
    Win10 企业版ltsc 无法访问samba网络共享问题及解决!(转)
    内核发送uevent的API,用户空间解析uevent(转)
    修改kile工程名字(转)
    gdb调试
    当usbnet打印 kevent * may have been dropped(转)
    收藏一份devmem源码
    Linux Performance
    控制 input框只输入数字
    springboot环境中,可能会出现使用font-Awesome结果图标不显示的问题,在webService的pom文件中添加如下配置代码
    js防止页面抖动(按钮,请求等重复提交)
  • 原文地址:https://www.cnblogs.com/FlyToDream/p/10734613.html
Copyright © 2020-2023  润新知