【问题标题】:Selenium WebDriver with RadWindowSelenium WebDriver 与 RadWindow
【发布时间】:2013-10-07 16:53:28
【问题描述】:

我正在尝试访问 RadWindow 中的表单。该网页使用window.radopen() 生成一个 ASP.NET 弹出窗口。我需要访问该弹出窗口,对其进行编辑,然后单击一个按钮。有没有办法使用 Selenium WebDriver 做到这一点?

具体来说,radwindow 包含一个 id 为“txtEntries”的文本区域和一个 id 为“btnAccept”的按钮。我试过先找到textarea,如下所示,但没有成功。

我目前正在尝试:

state = wait.Until<IWebElement>((d) =>
            {
                return d.FindElement(By.CssSelector("div#radWindow #txtEntries"));
            });

结果失败。

【问题讨论】:

  • 从我使用 Rad 控件的噩梦开始,我相信它使用 iframe?你能深入研究一下 HTML 源代码并检查一下吗?
  • .NET 的东西不是我的事。把这个从我这里拿走@Arran ;)

标签: c# selenium webdriver selenium-webdriver radwindow


【解决方案1】:

是的,有一种方法。由于 RadWindow 不是一个实际的窗口,它使它变得更加容易。

首先,使用 CSS 并拥有一个父选择器。类似的,

div#radWindow

然后只需添加您想要找到的元素。例如

input[type='text'].someclass

然后只是将它们连接起来,所以它变成了这个 -

div#radWindow input[type='text'].someclass

在 CSS 中翻译为“首先找到一个 id 为 radWindow 的 div,然后找到一个作为该 div 后代的输入,其 type 属性等于 text 并附加了 someclass

【讨论】:

  • 这如何转化为使用 Selenium WebDriver?我一直在使用 driver.FindElement(By.ID("ID"));通常。查找代码是什么样的?
  • 看起来像FindElement(By.cssSelector("div#radWindow input[type='submit']"))
  • 我已经尝试了您的代码并编辑了我的 OP 以包含我的尝试,但它仍然找不到该元素。有什么想法吗?
  • 我不知道 RadWindow 的。检查 RadWindow 使用的父元素并使用它。 #radWindow 只是我的猜测......你必须弄清楚它是什么
  • 啊,加载时我看不到 rad 窗口的任何代码。我知道它使用单独的页面加载,类似于 ajax,并且可以看到该代码,但不是从主页本身加载时它如何适合。我对 rad windows 了解不多。
猜你喜欢
  • 2018-05-04
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 2016-06-27
  • 2013-12-28
  • 2015-09-26
  • 1970-01-01
相关资源
最近更新 更多