100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python模拟登录163邮箱_selenium+python 模拟登陆网易邮箱

python模拟登录163邮箱_selenium+python 模拟登陆网易邮箱

时间:2021-09-11 16:45:59

相关推荐

python模拟登录163邮箱_selenium+python 模拟登陆网易邮箱

selenium 模拟登陆网易邮箱实例

selenium

一、selenium 模拟登陆网易邮箱老样子,先来看看效果图吧(我没有设置正确的账号和密码,大家自己试的时候可以设置自己的账号密码),思路和分析都在下边,不懂语法的小伙伴可以看webdriver使用方法,下面我有整理。查看网页源码,发现这个标签的id是 switchAccountLogin

browser.find_element_by_id('switchAccountLogin').click()结合图中分析:

browser.find_element_by_name('email').clear()

browser.find_element_by_name('email').send_keys("username")

browser.find_element_by_name('password').clear()

browser.find_element_by_name('password').send_keys('password')

browser.find_element_by_id('dologin').click()但是在这之前有一个特别重要的小环节,如果没有这个小环节是定位不到账号框和密码框的;因为邮箱输入框和密码输入框在iframe中,但是这个iframe id="x-URS-iframe156xxxxxx"后面的数字是一个时间戳。是唯一的,而且name竟然也是设置为“”,所以通过driver.find_element_by_name通过属性获取或者driver.find_element_by_id通过id获取都是提示找不到。

办法只有一个:driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]") ;通过使用xpath获取,并且是ids属性是“x-URS-iframe”开头的,就可以动态的获取这个iframe。

driver.switch_to.frame():切换界面,因为通过开发者工具可以看到,输入密码和用户名都是在iframe下,如果不切换到这个iframe.那么始终是找不到。

browser.switch_to.frame(self.browser.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))

附完整源码于此:

from selenium import webdriver

import time

class TestMyProjectOne():

def setup_method(self):

self.browser = webdriver.Firefox()

self.browser.get('/')

def teardown_method(self):

self.browser.quit()

def test_myProjectOne(self):

self.browser.find_element_by_id('switchAccountLogin').click()

time.sleep(3)

self.browser.switch_to.frame(self.browser.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]")) #importance

self.browser.find_element_by_name('email').clear()

self.browser.find_element_by_name('email').send_keys("username")

self.browser.find_element_by_name('password').clear()

self.browser.find_element_by_name('password').send_keys('password')

self.browser.find_element_by_id('dologin').click()

time.sleep(120) #休息120s

if __name__ == '__main__':

testMyProjectOne =TestMyProjectOne()

testMyProjectOne.setup_method()

testMyProjectOne.test_myProjectOne()

testMyProjectOne.teardown_method()

二、selenium

先:

后:

warning :未经授权,

有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。