【发布时间】:2019-08-14 10:04:52
【问题描述】:
我正在尝试从下拉列表中选择选项,但它返回错误:OpenQA.Selenium.ElementNotInteractableException: Element could not be scrolled into view.
选择表单如下所示:
<div ...>
<dd id="names-element">
<select name="names", id="names", tabindex="-1", style="display: none">
<option value="Ann">Ann</option>
<option value="Jon">Jon</option>
<option value="Mike">Mike</option>
<option value="Lisa">Lisa</option>
</select>
</dd>
</div>
我的代码:
IWebElement namesElement = driver.FindElement(By.Id("names"));
SelectElement namesSelect = new SelectElement(namesElement );
namesSelect.SelectByValue("Jon");
我尝试过使用 webwait likes:
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 10));
wait.Until(ExpectedConditions.ElementToBeClickable(namesElement));
但此时它返回: OpenQA.Selenium.WebDriverTimeoutException: 10 秒后超时
然后我尝试使用 javascript 执行器:
IJavaScriptExecutor je = (IJavaScriptExecutor)driver;
je.ExecuteScript("arguments[0].click();", namesElement);
但之后它再次返回: OpenQA.Selenium.ElementNotInteractableException:元素无法滚动到视图中。
我实际上是 Selenium 的新手,更喜欢 python,但此时需要使用 C#。谁能帮帮我?
【问题讨论】:
-
style="display: none"是为什么。它不可见。您要么必须在页面上执行某些操作以使其可见,要么在您使用桌面等时可能适用于移动设备。
标签: c# selenium-webdriver