200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python3 selenium 网易126邮箱自动化登录

python3 selenium 网易126邮箱自动化登录

时间:2021-05-18 08:19:44

相关推荐

python3 selenium 网易126邮箱自动化登录

首先新建一个 wyEmailLoginPublic.py 文件 用来定义一个登录类

from selenium import webdriverimport timeclass Login_In():'''登录类封装'''def __init__(self,driver):self.driver = driverdef open_url(self):'''打开登录的url'''url = '/'self.driver.get(url)time.sleep(2)self.driver.maximize_window()time.sleep(3)def user_pwd_login(self):'''点击密码登录按钮。切换到账号密码登录'''self.driver.find_element_by_id('lbNormal').click()def login(self,username,pwd):'''注意iframe,因为是动态的id所以通过xpath去定位'''self.driver.switch_to.frame(self.driver.find_element_by_xpath("//iframe[starts-with(@id,'x-URS-iframe')]"))self.driver.find_element_by_name('email').send_keys(username)self.driver.find_element_by_name('password').send_keys(pwd)self.driver.find_element_by_id('dologin').click()def close_browser(self):'''退出浏览器'''self.driver.quit()def all_actions(self,username,pwd):'''全部方法封装到一个方法里'''self.open_url()self.user_pwd_login() #点击切换到账号密码登录self.login(username,pwd)self.close_browser()

然后创建一个wyEmaillogin.py文件调用登录类

from selenium import webdriverfrom common.wyEmailLoginPublic import Login_Inimport timedriver = webdriver.Chrome()'''a = Login_In(driver) #实例化a.open_url()a.user_pwd_login()a.login('1150730480','111111')a.close_browser()'''#一步步调用太麻烦,使用action_all 方法a = Login_In(driver)a.all_actions('1150730480','11111')

上面的元素定位写的太多了,可以试着把元素定位,send_keys(),click()封装在一个类里面

新建一个base.py文件

from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitimport timefrom mon.by import Byclass Base():def __init__(self,driver):self.driver = driverself.timeout = 10self.t = 0.5def findElement(self,locator):'''这里用的是显示等待的元素定位'''ele = WebDriverWait(self.driver, self.timeout, self.t).until(lambda x: x.find_element(*locator))return eledef sendKeys(self,locator,text):'''输入文本的方法:首先定位到输入框,然后输入text'''ele = self.findElement(locator)ele.send_keys(text)def click(self,locator):'''点击的方法'''ele = self.findElement(locator)ele.click()def closeBrowser(self):self.driver.quit()#调试一下if __name__ == "__main__":driver = webdriver.Chrome()driver.maximize_window()driver.get("/")log = Base(driver) #初始化loc1 = ('id', 'lbNormal')log.click(loc1)

然后新建一个 .py的文件引用

from selenium import webdriverfrom mon.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom base import Basedriver = webdriver.Chrome()driver.maximize_window()driver.get("/")Log = Base(driver)loc1 = ('id', 'lbNormal')loc2 = ('name', 'email')loc3 = ('name', 'password')loc4 = ('id', 'dologin')Log.click(loc1)driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id,'x-URS-iframe')]"))Log.sendKeys(loc2,'1150730480')Log.sendKeys(loc3,'111111')Log.click(loc4)Log.closeBrowser()

上面的是否可以考虑把所有方封装在一个方法里调用以后学习了再优化

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