C#Selenium找不到输入
我正在努力寻找html中的输入字段,我可以用以下代码填写每个输入字段:C#Selenium找不到输入,c#,html,selenium,C#,Html,Selenium,我正在努力寻找html中的输入字段,我可以用以下代码填写每个输入字段: public async Task FillElementAsync(By by, string arg) { WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(20)); IWebElement myDynamicElement = wait.Until<IWeb
public async Task FillElementAsync(By by, string arg)
{
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(20));
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
return d.FindElement(by);
});
myDynamicElement.SendKeys(arg);
}
public异步任务FillElementAsync(By,string arg)
{
WebDriverWait wait=新的WebDriverWait(webDriver,TimeSpan.FromSeconds(20));
IWebElement myDynamicElement=等待直到((d)=>
{
返回d.FindElement(通过);
});
myDynamicElement.SendKeys(arg);
}
但当我尝试填写此输入时,我无法集中元素:
<span class="center-block">
<sprd-label-input model="">
<div class="label-input-wrapper" ng-class="{'active': focused || !!inputValue.length || !!modelValue.length || placeholderExists, 'filled': inputValue.length || modelValue.length}" ng-transclude="">
<div ng-model="idea.getCurrentTranslation().tags" sprd-validate-tags="idea" blacklist-result="tagsBlacklist" name="tags" class="ng-pristine ng-untouched ng-valid ng-not-empty ng-valid-tags ng-valid-blacklist"></div>
<label for="design-detail-tags" class="text-medium-grey">Stichwörter</label>
<!---->
<sprd-tag-input ng-model="idea.getCurrentTranslation().tags" idea-name="idea.getCurrentTranslation().name" display-tags-left="true" display-related-tags="true" display-error-text="form.$error.tags" blacklist-result="tagsBlacklist" id="input-design-tags" name="designTags" class="ng-pristine ng-untouched ng-valid ng-not-empty">
<div class="clearfix">
<!---->
<div class="tag-input-container form-control clearfix" focus-input-on-click="" remove-on-backspace="ngModel">
<!---->
<input ng-model="TagInputCtrl.tagInput" uib-typeahead="tagSuggestion for tagSuggestion in TagInputCtrl.getTagSuggestions($viewValue)" class="pull-left ng-pristine ng-untouched ng-valid ng-empty" select-on-comma="" select-on-whitespace="" select-on-blur="" typeahead-focus-first="false" tag-select="TagInputCtrl.onEnter" tag-select-model="ngModel" sprd-max-input-length="50" ng-show="ngModel.length < TagInputCtrl.validatorOptions.tags.max" aria-autocomplete="list" aria-expanded="false" aria-owns="typeahead-2871-1170" type="text">
<ul class="dropdown-menu ng-hide" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+'px', left: position().left+'px'}" role="listbox" aria-hidden="true" uib-typeahead-popup="" id="typeahead-2871-1170" matches="matches" active="activeIdx" select="select(activeIdx, evt)" move-in-progress="moveInProgress" query="query" position="position" assign-is-open="assignIsOpen(isOpen)" debounce="debounceUpdate" style="">
<!---->
</ul>
</div>
<!---->
<p ng-if="displayTagsLeft" class="pull-right">
<small class="design-tags-left">noch 25 Stichwörter</small>
</p>
<!---->
<!---->
<div ng-if="displayRelatedTags" class="form-group clearfix tag-input-related-tags ng-hide" ng-show="TagInputCtrl.relatedTags.length > 0">
<p class="label-description pull-left" style="margin-top: 3px;">Vorschläge für Stichwörter:</p>
<ul class="list-inline related-tags-list pull-left">
<!---->
</ul>
</div>
<!---->
</div>
</sprd-tag-input>
</div>
</sprd-label-input>
</span>
斯蒂奇沃特
noch 25 Stichörter
Vorschläge für Stichwörter:
我试图按类名(“标记输入容器”)、ID(“输入设计标记”)和名称(“设计标记”)查找元素。因此,我的问题是为什么,除了自动完成功能外,这种输入类型还有什么特别之处?您应该确保在此处向
输入
元素发送键,而不是sprd标记输入
元素
FillElementAsync(By.CssSelector("#input-design-tags input"), "test")
请注意,您可能需要首先单击
sprd tag input
元素来激活输入。请尝试使用CSSSelector(“输入[ng model='TagInputCtrl.tagInput']),如果在发送键之前元素需要激活,则可能需要将鼠标悬停在与问题不直接相关的元素上或单击该元素,而是一个旁白:您声明此方法async
有什么原因吗?我想不会,因为你不需要等待任何东西。为了保持用户界面的响应性。你是对的,为了简单起见,我删除了这行代码:wait JustWaitForXSeconds(5);