我们如何使用Selenium + php_webdriver + Firefox有效地点击链接?

时间:2014-12-15 21:06:57

标签: firefox selenium selenium-webdriver

我在使用Codeception + WebDriver + Selenium + Firefox进行测试时遇到了很多问题,因此我决定从变量中删除Codeception,并使用php_webdriver直接进行一些测试,以发现问题不在Codeception中。

我尝试使用3种不同的方法转到页面:

// Click a link
$driver->findElement(WebDriverBy::id('inbox-navigation'))->click();

// Directly go to the address via URL
$driver->get('http://testing.mysite.net/#/messages');

// Click via javascript
$driver->executeScript("jQuery('#inbox-navigation').click();");

当然,它们都不起作用,在我的浏览器中手动操作它可以正常工作。链接显示为单击,网址更改,但相关页面(通过ajax加载)永远不会被加载。

这是我用来测试它的完整源代码:

<?php

require __DIR__."/vendor/autoload.php";

$host = 'http://localhost:4444/wd/hub';

$driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox());

$driver->manage()->window()->setSize(new \WebDriverDimension(1280, 720));

$driver->get('http://testing.mysite.net/');

$driver->findElement(WebDriverBy::id('email'))->sendKeys('john@doe.com');
$driver->findElement(WebDriverBy::id('password'))->sendKeys('secret');
$driver->findElement(WebDriverBy::id('sign-in-button'))->click();

$driver->wait(10)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::id('inbox-navigation')));

$driver->findElement(WebDriverBy::id('inbox-navigation'))->click();

sleep(15); /// to make sure it wasn't too fast

$driver->takeScreenshot('screen.png');

var_dump($driver->getCurrentURL());

这是更改为收件箱的链接:

enter image description here

此外,在控制台中手动执行jQuery('#inbox-navigation').click();也可以正常工作。

0 个答案:

没有答案