java - Selenium 测试 - 通过弹出窗口添加的文本未保存
问题描述
我正在尝试使用 selenium web 驱动程序自动化网站。在网站上,有一个用于创建门名称的弹出表单,其中包含用于输入文本的文本字段。使用我尝试做的硒,弹出来但给定的文本没有得到保存。弹出它工作正常。需要向导来完成动作。
我使用的方法如下:
Alert alert=driver.switchTo().alert();
driver.switchTo().alert().sendKeys("New Gate");
alert.accept();
System.out.println(alert.getText());
- 元素由 Xpath 元素定位器标识。
- 我还提供了文本和 URL,这是我从堆栈中获得的另一种方法。
解决方案
您需要先切换到弹出窗口。然后您可以访问弹出窗口中的元素。
// save your main window handle
String MainWindow=driver.getWindowHandle();
// Get all window handle
Set<String> handles = driver.getWindowHandles();
现在,对于句柄中的每个 childHandle,
driver.switchTo().window(childHandle );
// check if your textField present.
// If found, do your actions and break;
// else switch to next window
最后,再次切换到主窗口。
driver.switchTo().window(MainWindow);
推荐阅读
- git - git新手。测试分支不会与主分支合并,出现错误无法合并二进制文件
- javascript - 我可以将道具作为函数参数传递,或者这是一种不好的做法吗?
- firebase - Firebase Crashlytics 不会连接到同一项目中的辅助 Xamarin Android 应用程序
- php - 创建签名 url 以从 s3 存储桶获取文件时出错?
- android - PlacePicker 于 2019 年 11 月立即打开和关闭
- ubuntu - 无法在 Ubuntu 19.10 上启动设置(gnome-control-center)
- python - 使用现有 ODBC 配置凭据的 pyodbc 连接
- mysql - 从mysql中的另一个表创建用户名
- excel - 在将值与设置变量进行比较后,如何使此宏创建新工作表?
- javascript - 如何在 ReactNative 中将货币图标放在 TextInput 的值前面?