您好我开始自动化一些测试。当您将鼠标悬停在下拉菜单上时,我正在尝试验证某些子菜单选项是否存在。但我从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}]
我一直在网上搜索,并希望得到任何帮助 谢谢 康纳
答案 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()