使用Perl库Selenium :: Remote :: Driver v1.28登录网站

时间:2018-06-13 21:13:43

标签: perl selenium

简单的send_keys方法已从v1.28版本中删除 Microsoft Documentation 并替换为send_keys_to_active_element。我现在无法使用用户名和密码字段登录网站。

以下是以前的库方法。 如何使用v1.28版本执行相同操作?

$sel->wait_for_element_present("name=username");                                                    
$sel->type("name=username", $username);
$sel->type("name=password", $password);
$sel->submit("name=Login");

1 个答案:

答案 0 :(得分:1)

我认为你对各种CPAN模块感到困惑。您显示的代码使用方法 WWW::Selenium, 但它没有send_keys,因为您在代码中使用的是type

Selenium::Remote::WebElement 有一个send_keys方法。如果要使用此模块,则需要调用find_element方法之一 从 Selenium::Remote::Driver 获取WebElement对象,并在其上调用send_keys。你还需要 Selenium::Waiter 等待给定元素出现的模块

这样的东西应该可行,但是你的问题中没有足够的细节来编写一个完整的演示,我目前无法测试Perl代码

use Selenium::Remote::Driver;
use Selenium::Waiter qw/ wait_until /;

my $driver = Selenium::Remote::Driver->new(...);

$driver->get(...);

wait_until({
    $driver->find_element_by_name('username')
})->send_keys($username);

$driver->find_element_by_name('password')->send_keys($password);

$driver->find_element_by_name('Login')->submit;