我正在使用我们现有的工具,该工具使用Selenium IWebdriver的Firefox和Chrome实现可以完美运行。
我现在正在使用PhantomJS实现进行一些实验。目前为止,一切都好。但是,只要我想单击一个按钮,它就什么也不做。
我可以检索该元素,但是,仔细查看其属性,"选定"属性声明如下:
Error Message => 'Element is not selectable' caused by Request => {"headers":{"Accept":"application/json, image/png","Connection":"Close","Host":"localhost:37704"},"httpVersion":"1.1","method":"GET","url":"/selected","urlParsed":{"anchor":"","query":"","file":"selected","directory":"/","path":"/selected","relative":"/selected","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/selected","queryKey":{},"chunks":["selected"]},"urlOriginal":"/session/fcaf88a0-40b4-11e3-960d-bdce3224aacf/element/%3Awdc%3A1383063211142/selected"}
我会收集这就是我的点击未执行的原因,但是,我无法从此错误消息中做出正面或反面。 使用谷歌也无济于事。
任何帮助将不胜感激。
提前谢谢。
我们在PhantomJS上遇到了很多类似的问题。
因此,几个步骤来确定其根本原因
-
设置屏幕尺寸(如评论中建议;PhantomJS默认使用400x300):
driver.Manage().Window.Size = new Size(1920, 1080); //Size is type in System.Drawing"
-
用于验证元素是否确实可见:
new WebDriverWait(driver, TimeSpan.FromSeconds(timeOut)).Until(ExpectedConditions.ElementExists((By.Id(login))));
-
使用 Javascript 单击元素
IJavaScriptExecutor js = _driver as IJavaScriptExecutor; js.ExecuteScript("arguments[0].click();", buttonToClick); //buttonToClick is IWebElement
对于Java,它将如下所示:
-
屏幕尺寸
driver.manage().window().setSize(new Dimension(width, height));
-
验证元素是否可见
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("LOCATOR")));
-
使用 JS 点击
JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("arguments[0].click();", buttonToClick); //buttonToClick is WebElement