perl - 如何使用 perl 语言在 selenium 远程驱动程序中打开新选项卡并打开 url

标签 perl selenium-webdriver

我正在使用 Selenium::Remote::Driver 模块,我想使用 perl 语言在 firefox 浏览器中打开新选项卡,您能否建议我必须使用哪种方法。

**tabsprogram.pl**


use Selenium::Remote::Driver;
use Selenium::Remote::WDKeys;

my $driver = Selenium::Remote::Driver->new();
 if(defined $driver)
{

  $driver->get("https://www.google.co.in/");
  $driver->set_implicit_wait_timeout(40000);
  $driver->find_element('body','tag_name')->send_keys(KEYS->{'Ctrl','t'});# the element is find but tab is not clicked
}

但是我没有收到任何错误消息,新选项卡也未打开并且驱动程序已退出。 请帮助我......

最佳答案

我这样做是为了让它工作

  $driver->send_keys_to_active_element(KEYS->{'command_meta'}, 't');

但是我在 Mac 上,Firefox 希望 Meta-T 打开一个新选项卡

如果你这样做

perldoc -l Selenium::Remote::WDKeys

要获取模块的位置,然后查看它,它有类似的内容

use constant KEYS => {
    'null'       => "\N{U+E000}",
    'cancel'     => "\N{U+E001}",
    'help'       => "\N{U+E002}",
    'backspace'  => "\N{U+E003}",
    'tab'        => "\N{U+E004}",
    'clear'      => "\N{U+E005}",
    'return'     => "\N{U+E006}",
    'enter'      => "\N{U+E007}",
    'shift'      => "\N{U+E008}",
    'control'    => "\N{U+E009}",

因此您可能需要使用“control”一词而不是“Ctrl”,并且您可以在不使用 KEYS 的情况下传递“t”->

这些是根据模块 http://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value 中的链接使用的控制键

关于perl - 如何使用 perl 语言在 selenium 远程驱动程序中打开新选项卡并打开 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421930/

相关文章:

perl - 如何检查数据库查询是否会返回结果?

linux - 这个 Perl 脚本是如何被调用的?

perl - 使用 NonStop 调试器选项时如何将 perl 脚本的调试跟踪重定向到文件?

java - 如何在 Java 中将 OpenLayers DrawFeature 与 Selenium WebDriver 一起使用(双击问题)?

javascript - mocha 中的 slow 参数是什么?

java - 如果其他测试失败,我可以跳过 Junit 测试吗?

perl - 我如何影响 Perl IPC::Open3 输出的宽度?

database - 如何查找和跟踪 Oracle 警报日志

javascript - 使用 selenium webdriver 在 IE11 中右键/上下文单击无法正常工作

javascript - 使用 Protractor 选择列表中的第二个 anchor 元素