如何解决为什么Selenium即使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(''),'workflowErfassungSelectionPanelTooltip'); ;">
<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')
感谢您的关注。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。