簡體   English   中英

為什么 Selenium 無法讀取下拉文本,即使它們存在於 HTML 中。 (C#, VS2019, 硒)

[英]Why Selenium can't read texts of dropdown even though those exist in HTML. (C#, VS2019, Selenium)

我正在嘗試制作一個自動工具來控制網頁。 我使用 C#、Visual Studio 2019、Selenium 和 Windows 10。

但是,當我嘗試從下拉列表中選擇一個值時,我無法閱讀其文本。 以下是我的代碼、HTML 和結果。

!代碼!

 _driverSerivce = ChromeDriverService.CreateDefaultService();
 _driverSerivce.HideCommandPromptWindow = true;
 _options = new ChromeOptions();
 ((ChromeOptions)_options).AddArgument("no-sandbox");
 _driver = new ChromeDriver((ChromeDriverService)_driverSerivce, (ChromeOptions)_options);

 wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(30));
 string URL = "Website";  // 
_driver.Navigate().GoToUrl(URL);

// I get the keyword below from HTML.
string Keyword = "erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_input";
IWebElement SelectedElement = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.Id(Keyword)));

SelectElement oSelection = new SelectElement(SelectedElement);               
foreach (IWebElement element in oSelection.Options)
{
    System.Diagnostics.Debug.WriteLine(element.Text);        // Print Each Value's Text (But null is printed!!!)
    System.Diagnostics.Debug.WriteLine(element.TagName);     // Print Each Value's Tag (Correct tag name is printed.)
}

oSelection.SelectByValue("[21 MMI - H3 ] E / E");    // Select a value from Dropdown.

!打印結果!

選項

選項

選項

選項

選項

選項

選項

!錯誤消息來自 oSelection.SelectByValue("[21 MMI - H3 ] E / E")!

OpenQA.Selenium.NoSuchElementException: '無法找到具有值的選項:[21 MMI - H3] E / E'

!HTML!

 <div class="worflowSelectionDropdown"> <div id="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_wrapper" class="select-box "> <div id="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all select closed "> <div class="ui-helper-hidden-accessible"> <input id="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_focus" name="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_focus" type="text" autocomplete="off" role="combobox" aria-haspopup="true" aria-expanded="false" aria-autocomplete="list" aria-owns="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_items" aria-activedescendant="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_1" aria-describedby="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_1" aria-disabled="false"> </div> <div class="ui-helper-hidden-accessible"> <select id="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_input" name="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_input" tabindex="-1" onchange="updateComboboxTooltip(PF(&#39;&#39;), &#39;workflowErfassungSelectionPanelTooltip&#39;); ;"> <option value="" selected="selected"></option> <option value="0" selected="selected">[21 I/EE-5 9] E/E</option> <option value="1">[11 MIB-STD MO] E/E</option> <option value="2">[11 MIB-STD AU] E/E</option> <option value="3">[21 MIB-HIGH MO] E/E</option> <option value="4">[21 MIB-HIGH AU] E/E</option> <option value="5">[21 MMI-H3 ] E/E</option> </select> </div> <label id="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_label" class="ui-selectonemenu-label ui-inputfield ui-corner-all">[21 I/EE-5 9] E/E</label> <div class="ui-selectonemenu-trigger ui-state-default ui-corner-right"> <span class="ui-icon ui-icon-triangle-1-s ui-c"></span> </div> </div> </div> <span id="erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelectionPanelTooltip" class="tooltip right iconTooltip"></span> </div>

正如您在結果部分所看到的,沒有任何內容與 'element.Text' 一起打印並被選中。 但是,在 HTML 中,有一些值,例如“[11 MIB - STD MO] E/E”。

你能告訴我原因嗎? 現在我想知道我是否使用了正確的關鍵字來選擇下拉列表。 (我使用了 'erfassenForm:erfassenForm:workflowErfassungSelection:workflowErfassungSelection_input')

感謝您的關注。

在此處輸入圖片說明

@DilipMeghwal 我試過 Python,但正如你在上圖中看到的,文本是 ''。 我認為這是我不知道為什么的根本原因......而且我通過 Selenium 等待功能、睡眠和手動暫停等得夠多了。

暫無
暫無

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

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