Perl Selenium :: ActionChains move_to_element无效

时间:2016-11-17 08:11:21

标签: perl selenium-webdriver

我正在尝试点击菜单下拉列表。当鼠标指针位于菜单元素上时,将显示下拉列表。解决方法可以通过单击菜单元素aslo但有时由于等待时间大或小而给出错误,具体取决于站点的速度。因此,我想使用ActionChains move_to_element。但它不起作用,没有任何错误,只是没有工作。

my $driver = Selenium::Chrome->new(binary=>"D:\\chromedriver_win32\\chromedriver.exe");
my $action_chains = Selenium::ActionChains->new(driver => $driver);
$elem = $driver->find_element(".//*[\@id='navl']/li[3]/a"); 
$action_chains->move_to_element($elem);
$driver->pause(5000);
$driver->find_element_by_xpath(".//*[\@id='navl']/li[3]/ul/li[1]/a")->click;
$driver->pause(50000);
$driver->shutdown_binary;

1 个答案:

答案 0 :(得分:0)

我不确定它是否有任何帮助 - 有很多关于Selenium行动和行动链的问题以及许多建议 - 我在使用Python Selenium绑定时遇到了类似的问题。

首先在上面的代码中,可能是在move_to_element之后没有调用最终的perform()方法

其次 - 那个东西是我自己的问题,也是我身边许多困惑的根源 - 我发现在我的情况下,在单个perform()之后,我无法重用相同的ActionChains对象 - 没有错误或投诉,但事情没有发生。在我创建了一个新的ActionChains对象后,后续的新动作链和最终的perform()按预期工作。