java - 如何用WebDriver处理Telerik弹出窗口(selenium JAVA)

标签 java selenium telerik

我在单击元素并识别名为 TelerikRadWindowsWrapper 的元素时遇到问题(请参见下面的捕获), 这是 Telerik 弹出窗口,而不是浏览器弹出窗口。 我曾多次尝试获取这些元素(单选按钮和文本),但没有成功

这里是一个例子:(f1元素是Quota Settings窗口的框架,f2是子元素)

WebElement f1 = driver.findElement(By.id("RadWindowWrapper_ctl00_RadWindow_QuotaSettings"));
WebElement f2 = f1.findElement(By.xpath("//*[@id='Panel_QuotaSettings']"));

编译器向我抛出有关未找到元素的错误消息...

这是页面的查看源代码:

<form id="form1" action="Users.aspx" method="post">
<div id="RadWindowWrapper_ctl00_RadWindow_QuotaSettings" class="RadWindow RadWindow_Default rwNormalWindow rwTransparentWindow" style="width: 432px; height: 307px; position: absolute; transform: none; backface-visibility: visible; visibility: visible; left: 744px; top: 207px; z-index: 3002;" unselectable="on">
<table class="rwTable" cellspacing="0" cellpadding="0" style="height: 307px;">
<tbody>
<tr class="rwTitleRow">
<tr class="rwContentRow">
<td class="rwCorner rwBodyLeft"> </td>
<td class="rwWindowContent rwExternalContent" valign="top">
<iframe frameborder="0" name="RadWindow_QuotaSettings" src="QuotaSettings.aspx?WindowType=Single&rwndrnd=0.4441132272970014" style="width: 100%; height: 100%; border: 0px none; top: -10000px;" tabindex="0">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="RadForm RadForm_Default rfdButton rfdScrollBars rfdZone rfdLabel rfdHeading rfdTextbox rfdTextarea rfdFieldset rfdRadio rfdCheckbox rfdGrids" xmlns="http://www.w3.org/1999/xhtml" style="">
<head id="Head1">
<body style="">
<form id="form1" action="QuotaSettings.aspx?WindowType=Single&rwndrnd=0.4441132272970014" method="post">
<div class="aspNetHidden">
<script type="text/javascript">
<script type="text/javascript" src="/Control/1.1.0.3/WebResource.axd?d=PcHC8Z_NQfDA_cv9GRehCSy-wMODQnJn5RDPjMXn0whea2YnXtTlCc5n52dCBmVTOj7JUYqnQ-a-m583yhJmaNOSB1k1&t=634964064498108000">
<script type="text/javascript" src="/Control/1.1.0.3/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=RadScriptManager_QuotaSettings_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a387126a6-cbc0-46b4-b6ca-c8de25a0044f%3aea597d4b%3ab25378d2">
<script type="text/javascript">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/Core.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/jQuery.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Ajax/Ajax.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/FormDecorator/RadFormDecorator.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/Popup/PopupScripts.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/jQueryPlugins.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/TouchScrollExtender.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/Navigation/OData/OData.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Common/Navigation/NavigationScripts.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/ComboBox/RadComboBoxScripts.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Input/TextBox/RadInputScript.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Input/NumericTextBox/RadNumericInputScript.js">
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/ajaxz/2013.1.417/Button/RadButton.js">
<div class="aspNetHidden">
<script type="text/javascript">
<script type="text/javascript">
<div>
<input id="HiddenField_MultyWindowName" type="hidden" name="HiddenField_MultyWindowName">
<table>
<tbody>
<tr>
<td>
<div id="RadAjaxLoadingPanel_QuotaSettings" class="RadAjax RadAjax_Black" style="display:none;">
<div id="Panel_QuotaSettings">
<div id="RadFormDecorator_QuotaSettings" class="RadFormDecorator" style="display:none;">
<table id="Table_QuotaAction">
<tbody>
<tr style="color:Gray;">
<tr>
<td style="white-space: nowrap">
<table>
<tbody>
<tr>
<tr>
<tr>
<td>
<input id="radio_BlockPrinting" class="rfdRealInput" type="radio" onclick="ShowHideQuotaSettings('1');" value="radio_BlockPrinting" name="radio_QuotaAction" _rfddecoratedid="_rfdSkinnedradio_BlockPrinting">
<label id="_rfdSkinnedradio_BlockPrinting" class=" rfdRadioUnchecked" for="radio_BlockPrinting" unselectable="on"> </label>
<span id="Label_BlockPrinting" style="font-size: small;">Block Printing</span>
</td>
</tr>
<tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

抱歉,我无法发布图片,稍后我会尝试

顺便说一句 - 我试图获取元素 id = 'radio_BlockPrinting' 但正如我所说没有成功,但我尝试获取 id = RadWindowWrapper_ctl00_RadWindow_QuotaSettings 的元素,这是“配额设置”窗口的标题(弹出- Telerik 的窗口),那么我怎样才能获得 id = 'radio_BlockPrinting' ?有什么想法吗?

最佳答案

我在使用 C# 时遇到了类似的问题。这是对我有用的解决方案,希望您能将其转换为 Java:

            popUpTrigger.Click();

            var handles = driver.WindowHandles;

            Console.WriteLine("Handles After Click:");
            foreach(var item in handles)
                Console.WriteLine(item);

            string popupHandle = handles[1];

            driver.SwitchTo().Window(popupHandle);

关于java - 如何用WebDriver处理Telerik弹出窗口(selenium JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19538161/

相关文章:

javascript - 多色线

c# - 我如何获得 RadGridView 列总和?

java - 转换日期中的字符串值时出现小问题

java - 如何制作圆形viewpager2?

Java-Selenium : Eclipse is unable to find my file, 但我的文件位于其工作目录中

python - 检查元素是否存在selenium python

JAVASCRIPT 值到 JSP 变量

java - 如何修复此错误 : The method toString() in the type Object is not applicable for the arguments?

java - Gradle的java插件如何并行运行JUnit测试: one queue per fork or a single queue and multiple forks?

c# - 使用 c# (telerik) 在 wpf 中自定义弹出窗口设计