我試圖訪問一個單選按鈕。從我的研究中,我發現使用名稱的元素,因爲單選按鈕的元素具有相同的名稱。我想選擇第二個按鈕,但是我得到一個元素不可見的異常,並且返回的元素的位置屬性在窗口之外。但是,我可以看到頁面上的元素。Selenium C#'OpenQA.Selenium.ElementNotVisibleException'error
異常:類型OpenQA.Selenium.ElementNotVisibleException「的異常出現在WebDriver.dll但在用戶代碼中沒有處理
ReadOnlyCollection<IWebElement> webElements = webElement.FindElements(By.Name("thename"));
webElements[1].SendKeys(Keys.Return);
我嘗試使用JavaScript的執行移動到的位置,以及Actions方法。都沒有工作。
我嘗試了所有可能的密鑰發送給點擊的操作方法:
Actions actions = new Actions(webDriver);
actions.MoveToElement(webElements[1]);
actions.SendKeys(Keys.Return);
actions.SendKeys(Keys.Enter);
actions.SendKeys(Keys.ArrowDown);
actions.Click();
actions.Perform();
對於JavaScript的執行我嘗試兩種方法。滾動到視圖中,並滾動webElement [1]的Location屬性告訴我它已關閉。
IJavaScriptExecutor js = webDriver as IJavaScriptExecutor;
string title = (string)js.ExecuteScript("arguments[0].scrollIntoView(true);", webElements[1]);
string title1 = (string)js.ExecuteScript("javascript:window.scrollBy(557329,136);");
我仍然不斷看到位置不可見的異常。
也許我誤解了一些東西,但你正在尋找一個單選按鈕......你爲什麼要發送ENTER鍵而不是做'.Click()'?你確定你在頁面上看到的單選按鈕實際上是那個名字的第二個元素嗎?可能有一些隱藏的元素具有相同的名稱。嘗試'webElements [1] .GetAttribute(「outerHTML」);'看看是否返回您正在尋找的標籤的HTML。 – JeffC
我寧願仔細研究'html'。我以前的單選按鈕實際上並不是傳統單選按鈕。你可以在這裏分享這裏的html,如果可能的話 – Saifur