我正在使用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();
看起来两个代码是相同的,但它们有不同的行为,如果有人能帮助指出他们为什么会有不同的行为,我们真的很感激吗?
答案 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