在使用Ruby的Selenium WebDriver时,按下TAB键然后再按ENTER键。

9
我是使用Ruby的Selenium WebDriver进行自动化测试。我需要点击一个按钮,但由于这个按钮是透明的,无法通过id、css或xpath找到按钮元素。我想要用Tab和Enter键来按下该按钮。
我可以使用Tab键获取按钮,如下所示:
@element.send_keys :tab
@element --> any javascript element visible in the browser

那么我如何在按钮上使用回车键呢?

基本上,我需要通过按下Tab键然后按下Enter键来点击按钮。

我正在使用Selenium WebDriver @driver = Selenium::WebDriver.for :firefox

4个回答

7
在Ruby中,user1316的代码如下所示:
driver.action.send_keys(elementVisible, :tab).send_keys(elementVisible, :return).perform

3
考虑到以下摘录:

我可以使用Tab键获取按钮,例如:

@element.send_keys :tab

@element --> 浏览器中的任何JavaScript元素

但是如何在按钮上使用Enter键呢?

为了在按钮上使用Enter键,您可以尝试其中一种提供的解决方案,使用Ruby 这里。基本上是发送:return而不是:enter,即@element.send_keys :return,并提供一些附加信息。 更新: 我可以提供一些Java代码,尝试通过这里提供的信息来实现概念问题。您可以尝试将其翻译为对应的Ruby Selenium API。
代码如下:

Actions builder = new Actions(driver);

builder.sendKeys( elementVisible, Keys.TAB).sendKeys(Keys.RETURN);

Action submitTheTransperentButton = builder.build();

submitTheTransperentButton.perform();


我的情况是我无法获取按钮元素。但我仍然需要点击该按钮。有没有其他更好的方法来实现这一点?谢谢 - AJJ

1

0

在 Ruby 中发送 ENTER:

@browser.action.send_keys("\n").perform

我认为这对我不起作用,比如如果我尝试去谷歌并输入asdf,然后手动按ENTER键,它可以工作。但是,如果我使用irb编程启动谷歌并编程输入asdf或手动输入asdf。然后编程发送ENTER键,它不起作用,而手动输入则可以。 - barlop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接