selenium 消息框元素定位处理
Posted houzhizhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium 消息框元素定位处理相关的知识,希望对你有一定的参考价值。
以下内容来自于“风少”的博客 《元素定位:selenium消息框处理 (alert、confirm、prompt)》
基础普及
alert对话框 。细分三种,Alert,prompt,confirm
1. alert() 弹出个提示框 (确定)
警告消息框 alert 方法有一个参数,即希望对用户显示的文本字符串。该字符串不是 html 格式。该消息框提供了一个“确定”按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说,用户必须先关闭该消息框然后才能继续进行操作。
2. confirm() 弹出个确认框 (确定,取消)
确认消息框
使用确认消息框可向用户问一个“是-或-否”问题,并且用户可以选择单击“确定”按钮或者单击“取消”按钮。confirm 方法的返回值为 true 或
false。该消息框也是模式对话框:用户必须在响应该对话框(单击一个按钮)将其关闭后,才能进行下一步操作。
3. prompt() 弹出个输入框(确定,取消)
提示消息框 提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个“确定”按钮和一个“取消”按钮。如果您提供了一个辅助字符串参数,则提示消息框将在文本字段显示该辅助字符串作为默认响应。否则,默认文本为 "<undefined>"。
selenium处理:
alert() 提示框
1. driver.switchTo().alert(); 获取alert
2. alert.accept(); 点确定
3. alert.dismiss(); 点取消
4. alert.getText();获取alert的内容
1. alert()
1
2
3
4
5
6
7
8
9
|
try { Alert alert =driver.switchTo().alert(); //使用driver.switchTo().alert()方法获取到alert对象 Assert.assertEquals( "弹框实际文本" , alert.getText()); //断言弹框文本是否和预期一致 alert.accept(); //点击确定 // alert.dismiss(); //点击取消 } catch (NoAlertPresentException exception){ //弹框未显示,则跑出异常 Assert.fail( "尝试操作的alert框没有被找到" ); exception.printStackTrace(); } |
2. confirm() ps:同alert一致
1
2
3
4
5
6
7
8
9
|
try { Alert alert =driver.switchTo().alert(); Assert.assertEquals( "弹框实际文本" , alert.getText()); alert.accept(); // alert.dismiss(); } catch (NoAlertPresentException exception){ Assert.fail( "尝试操作的alert框没有被找到" ); exception.printStackTrace(); } |
3. prompt()
1
2
3
4
5
6
7
8
9
10
11
|
try { Alert alert =driver.switchTo().alert(); Assert.assertEquals( "弹框实际文本" , alert.getText()); alert.sendKeys( "promt框中输入的内容" ); alert.accept(); // alert.dismiss(); } catch (NoAlertPresentException exception){ Assert.fail( "尝试操作的alert框没有被找到" ); exception.printStackTrace(); } |
以上是关于selenium 消息框元素定位处理的主要内容,如果未能解决你的问题,请参考以下文章
2.7.1 元素定位:selenium消息框处理 (alertconfirmprompt)
Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段