Selenium

时间:2016-01-11 01:18:02

标签: c# selenium action keydown sendkeys

我正在使用Actions类来为FireFox驱动程序执行C#selenium自动化测试。

我正在测试自动保存文本区域(单击文本区域以使内容可编辑,并更改任何内容以点击外部/单击选项卡以自动保存文本内容)。

最初我使用下面的代码1,它只执行“Control + a”操作但不执行其余操作:

actions = new Actions(this._driver);
actions.MoveToElement(element);
actions.SendKeys(Keys.Control + 'a').Build().Perform();
actions.SendKeys(Keys.Backspace).Build().Perform();
actions.SendKeys("new input").SendKeys(Keys.Tab).Build().Perform();

然后我将其更改为以下代码2,它可以工作。

actions = new Actions(this._driver);
actions.MoveToElement(element);
actions.KeyDown(Keys.Control).SendKeys("a").KeyUp(Keys.Control).Build().Perform();
actions.SendKeys(Keys.Backspace).Build().Perform();
actions.SendKeys("new input").SendKeys(Keys.Tab).Build().Perform();

看起来两个代码是相同的,但它们有不同的行为,如果有人能帮助指出他们为什么会有不同的行为,我们真的很感激吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是Actions.Sendkeys方法,则不会释放修饰键(如ctrl,shift等)。这就是在第一个代码中的原因

actions.SendKeys(Keys.Control + 'a').Build().Perform(); /// send ctrl keys & holds it

actions.SendKeys(Keys.Backspace).Build().Perform(); //performs control+backspace which does nothing