在用selenium登录126邮箱的时候会发现在定位到登录密码那里就会有出现问题了,一直定位不进去,接下来通过2个用例完成登录及发送邮件功能的实现方法
一、登录用例
在登录的时候会出现定位不到账号和密码输入框
这里有两个原因
1.登录是iframe窗口,需要切换到iframe窗口
2.iframe窗口的id后面是随机数,这里每切换一次都会发生改变的,使用不能直接用ID对iframe进行定位。
下面是登录用例的代码
def test_01login(self):
#从二维码登录切换到账号密码登录
self.driver.find_element_by_xpath('//*[@id="lbNormal"]').click()
#获取iframe窗口的xpath,这里使用starts-with
ifam=self.driver.find_element_by_xpath('//iframe[starts-with(@id,(x-URS-iframe))]')
#切换到iframe窗口
self.driver.switch_to.frame(ifam)
#name定位账户
self.driver.find_element_by_xpath("//input[@name='email']").send_keys('BB1633825958')
self.driver.find_element_by_xpath("//input[@name='password']").send_keys('bb882414')
self.driver.find_element_by_xpath('//*[@id="dologin"]').click()
二、编辑及发送邮件
def test_02write(self):
self.driver.find_element_by_xpath('//*[@id="_mail_component_19_19"]').click()
#通过class_name切换
self.driver.find_element_by_class_name('nui-editableAddr-ipt').send_keys('BB1633825958')
#定位主题
self.driver.find_element_by_css_selector('[maxlength="256"]').send_keys('测试')
#切换到主题iframe
self.driver.switch_to.frame(self.driver.find_element_by_xpath("//iframe[@class='APP-editor-iframe']"))
self.driver.find_element_by_xpath("//body[@class='nui-scroll']").send_keys('测试报告,请查收')