我试图使用ActionChains通过快捷键ALT + D和ALT + ENTER复制选项卡。这是来自用户的代码:5168011:
action_chains = ActionChains(driver)
action_chains.key_down(Keys.ALT).send_keys('d').perform()
action_chains.key_down(Keys.ENTER).perform()
action_chains.key_up(Keys.ALT).key_up(Keys.ENTER).perform()
但是,它根本不起作用。我已经尝试过使用Chrome和Firefox作为网络驱动程序的代码,在Linux和Win10中都尝试过,还尝试了Keys.ALT和Keys.LEFT_ALT,甚至使用send_keys函数来发送ALT和LEFT_ALT的Unicode。但是它看起来根本没有按ALT键。
我怀疑由于另一项测试而没有按下ALT键:如果我选择一个输入框为element
并使用代码:
action_chains.key_down(Keys.ALT, element=element).key_down(Keys.SHIFT, element=element).send_keys('d').perform()
它将在文本框中显示“ D”。但是,实际上,如果我将文本框设置为小写并按ALT + SHIFT + d,它将什么也不显示。因此,我建议key_down(Keys.ALT, element=element)
不起作用,它看起来像action_chains.key_down(Keys.SHIFT, element=element).send_keys('d').perform()
,这就是为什么它将在文本框中显示“ D”的原因。
顺便说一句,经过测试,我发现我的Keys.SHIFT和Keys.CONTROL运作良好,所以问题可能仅在于ALT。这是因为硒版本吗?我搜索了互联网,却没有发现类似的问题...