alert\confirm\prompt

不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。

alert\confirm\prompt弹出框操作主要方法有:

text:获取文本值

accept() :点击"确认"

dismiss() :点击"取消"或者叉掉对话框

send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框

一、认识alert\confirm\prompt

1.如下图,从上到下依次为alert\confirm\prompt,先认清楚长什么样子,以后遇到了就知道如何操作了。

2.html源码如下(有兴趣的可以copy出来,复制到txt文本里,后缀改成html就可以了,然后用浏览器打开)

<html>

<head>

<title>Alert</title>

</head>

<body>

<input id = "alert" value = "alert" type = "button" onclick = "alert(‘您关注了yoyoketang吗?‘);"/>

<input id = "confirm" value = "confirm" type = "button" onclick = "confirm(‘确定关注微信公众号:yoyoketang?‘);"/>

<input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt(‘请输入微信公众号:‘,‘yoyoketang‘); document.write(name) "/>

</body>

</html>

二、alert操作

1.先用switch_to_alert()方法切换到alert弹出框上

2.可以用text方法获取弹出的文本 信息

3.accept()点击确认按钮

4.dismiss()相当于点右上角x,取消弹出框

(url的路径,直接复制浏览器打开的路径)

三、confirm操作

1.先用switch_to_alert()方法切换到alert弹出框上

2.可以用text方法获取弹出的文本 信息

3.accept()点击确认按钮

4.dismiss()相当于点取消按钮或点右上角x,取消弹出框

(url的路径,直接复制浏览器打开的路径)

四、prompt操作

1.先用switch_to_alert()方法切换到alert弹出框上

2.可以用text方法获取弹出的文本 信息

3.accept()点击确认按钮

4.dismiss()相当于点右上角x,取消弹出框

5.send_keys()这里多个输入框,可以用send_keys()方法输入文本内容

(url的路径,直接复制浏览器打开的路径)?

五、select遇到的坑

1.在操作百度设置里面,点击“保存设置”按钮时,alert弹出框没有弹出来。(Ie浏览器是可以的)

2.分析原因:经过慢慢调试后发现,在点击"保存设置"按钮时,由于前面的select操作后,失去了焦点

3.解决办法:在select操作后,做个click()点击操作

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每页显示20条")

time.sleep(3)

s.click()

六、最终代码

# coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.select import Select

import time

driver = webdriver.Firefox()

url = "https://www.baidu.com"

driver.get(url)

driver.implicitly_wait(20)

# 鼠标移动到“设置”按钮

mouse = driver.find_element_by_link_text("设置")

ActionChains(driver).move_to_element(mouse).perform()

driver.find_element_by_link_text("搜索设置").click()

# 通过text:select_by_visible_text()

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每页显示20条")

time.sleep(3)

s.click()

driver.find_element_by_link_text("保存设置").click()

time.sleep(5)

# 获取alert弹框

t = driver.switch_to_alert()

print t.text

t.accept()

原文地址:https://www.cnblogs.com/ketangxiaohai/p/9218199.html

时间: 2024-08-28 14:42:13

alert\confirm\prompt的相关文章

Java Selenium - 几种对话框处理Alert\confirm\prompt

1. Alert , 先用常规办法定位到能触发alert的按钮 , 然后 Alert alert = driver.switchTo().alert(); alert.accept(); 如果alert框确认后,还好连续弹出alert框,继续同样操作,注意延时...不然可能因为太快,出错,坑. Alert alert = driver.switchTo().alert(); alert.accept(); Thread.sleep(1000); alert = driver.switchTo()

selenium python (十一)alert/confirm/prompt的处理(js中的弹出框)

webdriver中处理js所生成的alert.confirm以及prompt,采用switch_to_alert()方法定位到alert/confirm/prompt.然后使用text/accept/dismiss/send_keys进行操作 ①text:返回alert/confirm/prompt中的文字信息 ②accept:点击确认按钮 ③dismiss:点击取消按钮 ④send_keys:输入值,这个alert/confirm/prompt没有对话框就不能使用,否则会报错 eg:百度的设

【selenium自动化——alert/confirm/prompt 处理】

webdriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体思路是使用switch_to.alert()方法定位到 alert/confirm/prompt.然后使用 text/accept/dismiss/send_keys 按需进行操做. text 返回 alert/confirm/prompt 中的文字信息.accept 点击确认按钮.dismiss 点击取消按钮,如果有的话.send_keys 输入值,这个 alert\co

alert/confirm/prompt 处理

webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to_alert()方法定位到alert/confirm/prompt.然后使用text/accept/dismiss/send_keys 按需进行操做. text 返回alert/confirm/prompt 中的文字信息. accept 点击确认按钮. dismiss 点击取消按钮,如果有的话. send_keys 输入值,这个alert\confir

alert confirm prompt之间的区别

js当中Window有三个弹出框方法,分别是alert      confirm        prompt alert("弹出警告内容");           只是起到提示或者警示的作用,并没有返回值: confirm("弹出需要确认的内容");     需要用户确认,返回true  /   false; prompt("提示用户输入框需要输入的内容","输入框中默认的内容");          需要用户输入内容,返回用

cefsharp重写默认js弹窗(alert/confirm/prompt)

1.设置js弹窗控制器 webView.JsDialogHandler = this;  //js弹窗控制 2.实现接口方法 public bool OnJSAlert(IWebBrowser browser, string url, string message) { MessageBox.Show(message); return true; //阻止js弹 } public unsafe bool OnJSConfirm(IWebBrowser browser, string url, s

9. 处理alert/confirm/prompt

webdriver中处理原生的js alert confirm 以及prompt是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt.然后使用text /accept/dismiss/send_keys按需进行操做 text.返回alert/confirm/prompt中的文字信息 accept.点击确认按钮 dismiss.点击取消按钮,如果有的话 send_keys.向prompt中输入文字 alert.html <html> &l

alert() confirm() prompt() 的区别?

alert()是警告消息框,属于BOM中的成员函数,就是window.alert( ); window.alert函数弹出的对话框是模式对话框,用户必须关闭消息框才能继续进行操作;由于js没有输入输出,所以浏览器的window对象提供了两个函数alert和prompt对应output和input; prompt()是提示消息框,用户可以根据提示输入字符串:比如var name = prompt('请输入姓名'),就是新声明一个变量name,用于接收用户输入的值: confirm()是确认消息框,

Selenium处理alert/confirm/prompt提示框

目录 About selenium处理alert提示框 selenium处理confirm提示框 selenium处理prompt提示框 返回上一页 About 回到顶部 重新认识alert首先,不是所有的alert都能叫做alert框.JavaScript中,关于消息提示框的方法有三个(虽然都跟alert差不多): alert(message)方法用于显示带有一条指定消息和一个 OK 按钮的警告框. confirm(message)方法用于显示一个带有指定消息和 OK 及取消按钮的对话框.如果