【发布时间】:2017-06-23 04:02:53
【问题描述】:
我有一个在线 Web 应用程序,其中列出了具有查看按钮的产品。单击“查看”按钮会显示警报。警报有四 (4) 个字段:警报文本、输入文本字段、确定按钮和取消按钮。警报文本显示为“警报文本是:产品缺货!请输入您的电子邮件 ID”。
如果我用我的 Selenium Java 代码取消警报,它运行良好:
//Switch to the Alert & Dismiss
driver.switchTo().alert().dismiss();
如果我简单地使用我的 Selenium Java 代码单击“确定”,它确实运行良好:
//Click on Accept
driver.switchTo().alert().accept();
但如果我尝试在警报的输入文本字段中提供我的电子邮件 ID,
Thread.sleep(3000);
driver.switchTo().alert().sendKeys("debanjan.selenium@mymail.com");
//driver.switchTo().alert().sendKeys("debanjan");
//Click on Accept
driver.switchTo().alert().accept();
Selenium 显示 org.openqa.selenium.WebDriverException 如下:
警报文本是:产品缺货!请输入您的邮箱 Id org.openqa.selenium.WebDriverException:缺少“值”参数 (警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:6 毫秒
操作系统详细信息:“Windows 8”专业版,os.arch:“amd64”,os.version:“6.2”,
Java.version: '1.8.0_77'
驱动信息:org.openqa.selenium.firefox.FirefoxDriver
谁能帮帮我?
奇怪的是: 当我尝试通过独立的 Selenium Java 类来处理警报(即在警报文本框中传递 emailID)时,这段代码可以正常工作。
driver.switchTo().alert().sendKeys("debanjan.selenium@gmail.com");
但是,当通过 FRAMEWORK(我实现的)[Class : PlaceOrder, Method : orderCamera()] 实现相同的代码时,emailID 永远不会写入警报的 Textbox 字段中。
【问题讨论】:
-
如果 driver.switchTo().alert().sendKeys("debanjan") 不起作用,请尝试使用 Robot 在警报框中传递值。
标签: java selenium selenium-webdriver gecko geckodriver