回传书籍到kindle上,定位frame中的成分

By admin in 4858.com on 2019年4月8日

个人对selenium的理解:

一.采取selenium操作浏览器,实际上是选择selenium框架下的webdriver运维各浏览器的驱动达成对浏览器的操作的。以下两句代码即可运行firefox浏览器驱动

from selenium import
webdriver

brower=webdriver.Firefox()

因此,selenium的作用实际上相当于模拟了用户操作浏览器(点击链接、按钮、填写表单、截屏、控制窗口大小、安装插件、配置证书等操作)。
webdriver能够操纵浏览器的原因是webdriver封装了浏览器的API。由于不同厂家生产的浏览器API实现方式不大相同,因此webdriver也分FirefoxDriver、ChromeDriver、iOSDriver等驱动。
调用不同的浏览器,我们除了要安装导入webdriver模块外,还要下载相对应浏览器的驱动。

2.webdriver能够定位节点,

selenium学习课程:

1、Mr.南柯

selenium总结,

回传书籍到kindle上,定位frame中的成分。效益:将QQ阅读的秘书下载,并回传到kindle上

永恒成分时平日会晤世一定不到成分,那时候大家供给观看标签的上下文,1般情形下这一个定位不到的要素存放在了frame可能放置窗口了,只要大家切入进去就足以很简单定位到成分。

一、定位有关内容:

1、定位不到的四种状态及化解办法

2、iframe影响稳定后的切换与处理

重大的四个函数:

brower.switch_to.frame(reference)  切入referrence这个frame中

brower.switch_to.parent_frame()  切回父frame中

brower.swith_to.default_content()
切回主页面中,倘若要在多少个平行的frame中切换,必须添加这一句回到主页面后再切换至其余iframe中

个人对selenium的理解:

壹.施用selenium操作浏览器,实际上是应用selenium框架下的webdriver运行各浏览器的驱动达成对浏览器的操作的。以下两句代码即可运转firefox浏览器驱动

from selenium import webdriver

brower=webdriver.Firefox()

因此,selenium的作用实际上相当于模拟了用户操作浏览器(点击链接、按钮、填写表单、截屏、控制窗口大小、安装插件、配置证书等操作)。
webdriver能够操纵浏览器的原因是webdriver封装了浏览器的API。由于不同厂家生产的浏览器API实现方式不大相同,因此webdriver也分FirefoxDriver、ChromeDriver、iOSDriver等驱动。
调用不同的浏览器,我们除了要安装导入webdriver模块外,还要下载相对应浏览器的驱动。

2.webdriver能够定位节点,

selenium学习课程:

1、Mr.南柯

采纳模块:

  1. selenium

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import time
from selenium.webdriver.common.action_chains import ActionChains

  1. email

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email import Encoders, Utils
import smtplib
from email.Header import Header

  1. getopt

import getopt, sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)

拍卖frame时重要利用到switch_to.frame()(切入frame也能够些写成switch_to_frame,然而那些已经用的很少了)和switch_to_default_content()多个章程,二个重大是切入到iframe里面,三个是切换来主文书档案中,一般情形那五个要合营着用,切进去年今年后操作达成成分之后,就要在切回到主文书档案,幸免有个别任何的不当。

2、selenium相关方法

1、Python Selenium
常用方法总结

4858.com ,三、selenium各种包

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

 

一、定位有关内容:

一、定位不到的各类状态及消除办法

贰、iframe影响稳定后的切换与处理

驷不及舌的四个函数:

brower.switch_to.frame(reference)  切入referrence这个frame中

brower.switch_to.parent_frame()  切回父frame中

brower.swith_to.default_content()
切回主页面中,假诺要在多少个平行的frame中切换,必须添加这一句回到主页面后再切换至别的iframe中

注意事项:

  1. selenium定位以及切换frame(iframe)
    frame标签有frameset、frame、iframe二种,frameset跟其它平常标签未有区分,不会潜移默化到健康的定点,而frame与iframe对selenium定位而言是一模①样的,selenium有一组方法对frame举行操作。
    从而假诺善用以下五个艺术,碰着frame分分钟化解:

driver.switch_to.frame(reference) #切入frame,使用id,或者name属性
driver.switch_to.parent_frame()#切回上一流frame
driver.switch_to.default_content()#切回主页面

  1. 命令行传入参数

    try:
        opts, args = getopt.getopt(sys.argv[1:], "f:u:", [])
    except getopt.GetoptError:
        # print help information and exit:
        pass

    for name, value in opts:
            if  name in ("-u"):
                url1 = value
            if name in ("-f"):
                filename1 = value

    print url1,filename1
  1. 发邮件

    filename = filename + ".txt"
    server = 'smtp.163.com'
    username = "rufus_tang"
    password = 'y880228'
    from_mail = 'rufus_tang@163.com'
    to_mail = '15825279415_e6b0cb@kindle.cn'

    smtp = smtplib.SMTP()
    smtp.connect(server)
    smtp.login(username, password)

    msg = MIMEMultipart()
    msg['to'] = to_mail
    msg['from'] = from_mail
    msg['Subject'] = "Convert"
    msg['Date'] = Utils.formatdate(localtime=1)

    content = open(filename, 'rb').read()
    att = MIMEText(content, 'base64', 'utf-8')
    att['Content-Type'] = 'application/octet-stream'
    att["Content-Disposition"] = "attachment;filename=\"%s\"" % Header(filename, 'gb2312')

    msg.attach(att)

    smtp.sendmail(msg['from'], msg['to'], msg.as_string())
    smtp.quit()
  • switch_to.frame()  #若果frame
    中有name和id属性就直接运用id或许name举行固化,如果未有id和name属性,能够透过find_element_by_xpath(恐怕其余定位)方法定位到这些iframe成分,然后把那些因素传进去。

    #-– coding:utf-8 –
    ”’1二陆邮箱登陆”’
    import time
    import unittest
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC

    class WANGYI(unittest.TestCase):

    def setUp(self):
        print('开始测试')
        self.username = 'yuhuan2006_2548'  # 定义账号
        self.password = 'xxxxx'   #定义密码
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.base_url = "http://mail.126.com/"
        self.driver.get(self.base_url)
    
    def test_login(self):
        '''测试登陆126邮箱'''
        WebDriverWait(self.driver,10).until( EC.presence_of_element_located((By.ID, "x-URS-iframe")))
        self.driver.switch_to.frame("x-URS-iframe")  #切换进入frame 在这里也可以写self.driver.switch_to.frame(self.driver.find_element_by_xpath('//*[@id="x-URS-iframe"]')),先定位元素
        self.driver.find_element_by_name("email").send_keys(self.username)
        self.driver.find_element_by_name("password").send_keys(self.password)
        self.driver.find_element_by_id("dologin").click()
        WebDriverWait(self.driver,10).until( EC.presence_of_element_located((By.ID, "spnUid"))) #增加等待时间,判断验证信息元素是否显示
        verifyLoginSucceed = self.driver.find_element_by_xpath('//*[@id="spnUid"]').text
        self.assertIn(self.username,verifyLoginSucceed)    #验证是否登陆成功
    def tearDown(self):
        self.driver.implicitly_wait(30)
        self.driver.quit()
        print('测试结束')
    

    if name == ‘main‘:

    unittest.main()
    

二、selenium相关措施

一、Python Selenium 常用方法总括

三、selenium各种包

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

 

个人对selenium的掌握:
一.施用selenium操作浏览器,实际上是行使selenium框架下的webdriver运营各浏览器的驱动落成对浏览器的操作…

刚好有人问笔者1二陆信箱怎么输入账号和密码,初步他认为是出于Input标签的习性导致未有章程输入账号,后来恰巧有时光了,看了一下1二陆信箱的你复苏,发现此处便是利用了iframe切换,所以在那里总括了一下frame,并且以126信箱为例子写了1晃。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有