小白求救,如何判读登录失败的原因【已解决】
本帖最后由 pl02206984 于 2016-7-12 10:49 编辑看了几天的selenium,然后今天动手写了一个testcase,但是发现问题多多啊,其中有一个问题向大伙求教下,问题如下:我写了个登录的testcase,但是当写到判断登录失败原因的时候卡住了,因为我不知道如何去判断登录失败的原因,要是非空还好判断,但是输入我输入错误的用户名和密码,那如何判断呢?
请大神门给点指点,谢谢了。
问题描述清楚点,失败原因的时候卡住了? 还是截图和脚本附上来看看吧~~ 若尘_51 发表于 2016-7-1 15:56
问题描述清楚点,失败原因的时候卡住了? 还是截图和脚本附上来看看吧~~
谢谢你的回复。
是这样的,在登陆的时候肯定有判断的。
1.判断用户名和密码不能为空。
2.判断用户名和密码的正确性。
第一个我可以写出来,但是我不知道如何写第二个。 1、正常登陆的情况,获取登陆后的ULR和任意一个页面元素,与你的预期结果对比(使用断言)
2、登陆失败的情况,如:用户名非法,或密码不正确等情况,获取提示信息,与你的预期结果对比(也是使用断言)
例子:
ulr_value = r'http://www.baidu.com'
if driver.current_url == ulr_value:
print "Pass"
flag1 =1
else:
print "当前的ULR错误"
flag1 =2
#失败截图
driver.switch_to_window(driver.window_handles[-1])
ErrorPng_name = Commond_ErrorPng("test_01")
driver.get_screenshot_as_file(ErrorPng_name)
self.assertEquals(flag1,1)
#(2) 页面元素显示正常
text_value = driver.find_element_by_id("columnTitle_h2").text
time.sleep(1)
if text_value == u"公告":
print "Pass"
flag2 =1
else:
print "页面元素显示异常"
flag2 =2
#失败截图
driver.switch_to_window(driver.window_handles[-1])
ErrorPng_name = Commond_ErrorPng("test_01")
driver.get_screenshot_as_file(ErrorPng_name)
self.assertEquals(flag2,1)
若尘_51 发表于 2016-7-4 13:40
1、正常登陆的情况,获取登陆后的ULR和任意一个页面元素,与你的预期结果对比(使用断言)
2、登陆失败的 ...
谢谢,但是还有一个问题,比如我点击下一步按钮。原本的样式是这样的:<div class="con-ste">
<ul>
<li class="step1"></li>
<li class="step2"></li>
<li class="step3"></li>
</ul>
</div>
点击后变成这个样子:
<div class="con-ste">
<ul>
<li class="step1" style="background: url("/xxxx/image/1_2.png") no-repeat;"></li>
<li class="step2" style="background: url("/xxxx/image/2_2.png") no-repeat;"></li>
<li class="step3"></li>
</ul>
</div>那么我应该如何判断我点击那个下一步按钮成功了,因为成功后会变成下面那个样式。
#去除style的值,进行判断:
style_value1 = driver.ind_element_by_xpath(xxx).get_attribute('style')
style_value = style_value1[:10]
if style_value == "background":
print "Pass"
flag1 =1
............ 若尘_51 发表于 2016-7-4 16:02
#去除style的值,进行判断:
style_value1 = driver.ind_element_by_xpath(xxx).get_attribute('style')
...
谢谢,我去试试 本帖最后由 pl02206984 于 2016-7-5 14:26 编辑
若尘_51 发表于 2016-7-4 16:02
#去除style的值,进行判断:
style_value1 = driver.ind_element_by_xpath(xxx).get_attribute('style')
...
今儿我遇到了一个新的问题,在注册成功后会弹出一个对话框,代码如下
<div class="modal" id="popup-modal" style="margin-left: -15%; display: block;">
<div class="success">注册成功!</div>
<div class="su_title">
<img src="/xyqb/image/redbag.png">
</div>
<div class="su_content">
前往 <a target="_blank" href="xxxxxxxxx" style="font-size:18px; color:#2da4da;">点击领奖</a> 参与游戏<br> 领取红包
</div>
<input class="gonow" type="button" value="GOGOGO" onclick="location.href='xxxxxxxx'">
<div class="gogg">
<a href="xxxxxxxxx">去瞅瞅</a>
</div>
</div>
其中s当注册成功后,id是popup-modal的这个div中,style会增加一个显示的命令:display: block;。
本来我想的是获取popup-modal这个div的style,然后用indexof判读有没有display: block这句话的,但是最后发现,我获取的style只能获取到第一个;号为止,也就是说我获取不到第一个;号后面的display: block;,想问下这个应该怎么解决? pl02206984 发表于 2016-7-5 14:05
今儿我遇到了一个新的问题,在注册成功后会弹出一个对话框,代码如下
其中s当注册成功后,id是popup-m ...
首先确认下获取的内容看看:
style_value = driver.ind_element_by_xpath(xxx).get_attribute('style')
print style_value
如果真如你所说的,你可以尝试获取对话框其他内容,也可以判断“注册成功,弹出了对话框“”。 若尘_51 发表于 2016-7-5 15:45
首先确认下获取的内容看看:
style_value = driver.ind_element_by_xpath(xxx).get_attribute('style')
...
好诡异,我今天重新运行了我写的代码,就可以了:lol
页:
[1]