我正在使用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
}
但我没有得到任何错误消息,新选项卡也没有打开,驱动程序退出。 请帮帮我....
答案 0 :(得分:2)
我这样做是为了让它发挥作用
$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
中的链接使用的控制键