如何从PHPUnit& amp;中的下拉窗口中选择一个链接?硒

时间:2014-02-18 13:43:04

标签: selenium phpunit pear

您好我开始自动化一些测试。当您将鼠标悬停在下拉菜单上时,我正在尝试验证某些子菜单选项是否存在。但我从PHPUnit返回错误:

PHPUnit_Extensions_Selenium2TestCase_WebDriverException:元素当前不可见,因此可能无法与之交互 命令持续时间或超时:16毫秒 构建信息:版本:' 2.39.0',修订版:' ff23eac',时间:' 2013-12-16 16:11:15' 系统信息:主机:' WIN-5FCJ9IIGCSP',ip:' 192.168.31.128',os.name:' Windows Server 2008 R2', os.arch:' amd64',os.version:' 6.1',java.version:' 1.7.0_51' 会话ID:9fad5b24-2a1e-472d-bb36-b8914b3a92c2 驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver Capabilities [{platform = XP,acceptSslCerts = true,javascriptEnabled = true,cssSelectorsEnabled = true,databaseEnabled = true,browserName = firefox,handlesAlerts = true,browserConnectionEnabled = true,webStorageEnabled = true,nativeEvents = false,rotating = false,locationContextEnabled = true ,applicationCacheEnabled = true,takeScreenshot = true,version = 27.0.1}]

我一直在网上搜索,并希望得到任何帮助 谢谢 康纳

2 个答案:

答案 0 :(得分:0)

在搜索元素之前(下拉列表) 试着把:

sleep(3); // This will make it sleep for 3seconds

或者waitForElementPresent可以正常工作。 看看你得到了什么。 Selenium可能认为页面已经加载并尝试查找尚未加载的元素:元素当前不可见

答案 1 :(得分:0)

我也处于selenium的最开始,但这是我为点击下拉元素而编写的解决方案

for($tick=0 ; $tick<5 ; $tick++){
    $this->moveto($this->byCssSelector('#dropDown'));
}

$this->byLinkText("Settings")->click();

如果我没有用{for循环包裹moveto(),那么它会暂时悬停并且不起作用,所以滴答作响使它保持不变。

我建议您使用waitUntil()功能并检查元素何时为displayed()