簡體   English   中英

使用 Selenium 進行編程以使用 c# 和 Visual Studio 2019 自動化 ARIA:Listbox

[英]Programming with Selenium to automate an ARIA:Listbox with c# and Visual Studio 2019

我正在嘗試從代理自動下載 function。 我已經能夠使用 id 和 pw 登錄,導航到特定的 web 頁面和 select 並從該站點收集項目。 但是,我很難理解如何以嵌入式形式 select ARIA:Listbox 項目。 我見過的所有示例都顯示 windows forms 列表框或 HTML Z99938282F04071859941ECF18F16 列出了這個 www 站點的方式。

我已經成功使用 c# Selenium findelement By.ID 獲取所需的列表框,但最后一個錯誤說它必須滾動到視圖中。 我猜該項目不在視圖中,因為我沒有點擊 ARIA 列表框來顯示列表。 我嘗試單擊下拉箭頭和單元格本身,但列表未顯示。

我需要一些關於下一步嘗試的指示。

謝謝 好的-這里有一些附加信息:如果這不正確,我深表歉意-我只是在學習使用該網站...

當我使用程序代碼時


browser_driver.FindElement(By.Name("OfxDownloadForm:downloadOption")).Click();

我收到消息

OpenQA.Selenium.ElementNotInteractableException:'元素無法滾動到視圖中'

相關html如下:

<span id="OfxDownloadForm:downloadOption" role="presentation" onfocusjs="removingDuplicateContentFromMenu();;vg.validation.focus(this)" onchangejs="setWarnings('downloadOption');" onblurjs="vg.validation.blur(this)" class="vg-SelOneMenu" compname="selectOneMenu">
    <div class="vg-SelOneMenuCont vg-SelOneMenuNoWrap vg-SelOneMenuFocusText vg-SelOneMenuHover" id="OfxDownloadForm:downloadOption_cont" aria-owns="menu-OfxDownloadForm:downloadOption">
    <a href="javascript:void(0);" onclick="return false;" class="vg-SelOneMenuTrigger" id="OfxDownloadForm:downloadOption_aTag" role="button" aria-xpanded="false" aria-haspopup="true" aria-controls="menu-OfxDownloadForm:downloadOption" aria-labelledby="downLoadOptionText OfxDownloadForm:downloadOption_text" aria-disabled="false">

如果我在“OfxDownloadForm:downloadOption_aTag”之后使用 go :

wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.PresenceOfAllElementsLocatedBy(By.ID("OfxDownloadForm:downloadOption_aTag")));
browser_driver.FindElement(By.ID("OfxDownloadForm:downloadOption_aTag")).Click();  

什么都沒有發生 - 彈出窗口沒有發生。

希望這一切順利!

經過大量研究和閱讀,我發現我必須在程序中執行兩步操作:

input_element = browser_driver.FindElement(By.Id("OfxDownloadForm:downloadOption_aTag"));
    Actions actions = new Actions(browser_driver);
    actions.MoveToElement(input_element);
    actions.Perform();
    input_element.Click();

我相信 FindElement 方法只是定位了元素,但沒有將鼠標重新定位到該元素上的文檔中。 MoveToElement 方法向下滾動文檔並將元素帶入視圖,然后單擊同一元素允許下拉列表框進行處理。 一旦我找到並移動,我就能夠 select 適當的下拉項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM