使用 WebDriver/Seleneium 输入击键,但没有要将命令发送到的对象

Entering Keystrokes with WebDriver/Seleneium without an Object to send the command to

我无法弄清楚如何切换到网页中内置的弹出窗口 window,解决该问题的简单方法是只需按“输入”键。但是,class 的工作方式是命令:

Sendkeys.Keys("<insert Key>");

期望有某种类型的文本框可以将它发送到(除非我不太了解它),我只需要按下回车键,就好像只是在键盘上敲击它一样。这在 Selenium 或 Windows 命名空间中可能吗?

编辑

我没有正在使用的代码,所以我现在展示一下:

driver.FindElement(By.Id("ctl00_c_btnPost_btn")).Click();

此命令强制 window 弹出。需要说明的是,这不是我浏览器中的另一个 window,而是网页中弹出的 window,这就是我的问题所在。表格看起来像:

在 window 弹出后,我想按回车键 select “确定”,而不必实际 select window。但是,我希望有人能解释如何 select 和 window。

一种常见的方法是将密钥发送到 body 元素:

driver.FindElement(By.TagName("body")).SendKeys("Keys here");

但是,如果这是一个警报,切换到它并接受它:

IAlert alert = driver.SwitchTo().Alert();
alert.Accept();

您还可以将密钥发送到屏幕截图中显示的 "window wrapper" 弹出窗口:

driver.FindElement(By.CssSelector("div[id^=RadWindowWrapper]")).SendKeys(Keys.RETURN);

或者,找到里面的确定按钮并点击它:

driver.FindElement(By.Xpath("//div[starts-with(@id, 'RadWindowWrapper')]//*[. = 'OK']")).Click();