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()