selenium3+Python 163邮箱自动发邮件

最近开始搞测试,不管是lr还是selenium,各种版本兼容,环境配置。。。心累。。。

刚刚成功的完成了自动发邮件

我的环境是:firefox55+selenium3.4.3+Python3.5.2

遇到的问题:firefox驱动:geckodriver下载好之后添加在PATH环境变量中,并且firefox也得添加到环境变量中

后面遇到的问题主要是定位不到:

1.进入游览器之后加一句dr.implicitly_wait(30),我猜是页面还没渲染完成,所以会定位不到

2.登入界面在iframe里,所以得切换到  dr.switch_to.frame

3.id是动态的_mail_component_70_70后面数字会变,用xpath,或者是利用类似dr.find_element_by_css_selector("div[id^='_mail_input_2']>input.nui-ipt-input")一层一层的找,id^='_mail_input_2‘表示以_mail_input_2开头的id

 

from selenium import webdriver
from time import sleep
dr = webdriver.Firefox()
dr.get("http://mail.163.com/")
dr.find_element_by_id("lbNormal").click()
dr.implicitly_wait(30)
xf = dr.find_element_by_xpath('//*[@id="x-URS-iframe"]')
dr.switch_to.frame(xf)
dr.find_element_by_name("email").clear()
dr.find_element_by_name("email").send_keys("邮箱账户")
dr.find_element_by_name("password").clear()
dr.find_element_by_name("password").send_keys("密码")
dr.find_element_by_id("dologin").click()
dr.switch_to.default_content()
dr.find_element_by_xpath(".//*[@id='_mail_component_70_70']").click()
sleep(1)
dr.find_element_by_class_name("nui-editableAddr-ipt").clear()
dr.find_element_by_class_name("nui-editableAddr-ipt").send_keys("收件箱")

dr.find_element_by_css_selector("div[id^='_mail_input_2']>input.nui-ipt-input").send_keys("测试webweb") 
af = dr.find_element_by_class_name('APP-editor-iframe')
dr.switch_to.frame(af)
dr.find_element_by_xpath('//body[@class="nui-scroll"]').send_keys("Good study, day day up!")
dr.switch_to_default_content()
dr.find_element_by_css_selector("div[id^='_mail_button_2']>span.nui-btn-text").click()

 

posted on 2017-08-15 10:35  laoguigui  阅读(901)  评论(0编辑  收藏  举报

导航