【问题标题】:How to to select an option in an auto complete field如何在自动完成字段中选择一个选项
【发布时间】:2013-12-12 21:56:03
【问题描述】:

我有一个名为“Race”的字段。当我添加两个字符时,例如其中的“AS”,它向我显示了下面的自动完成选项,其中有 i) 亚洲 ii) 亚洲印度等选项。该字段的 HTML 如下:

<input name="txtRace$txtField" tabIndex="11" id="txtRace_txtField" style="width: 152px;" type="text" _events="[object Object]" hint="" _behaviors="[object Object]" AutoCompleteBehavior="[object Object]" autocomplete="off"/>  
<ul class="autocomplete_completionListElement" id="ctrltxtRace_completionListElem" style="position: absolute;" _events="[object Object]" _behaviors="[object Object],[object Object],[object Object]" PopupBehavior="[object Object]" GenericAnimationBehavior="[object Object]"/> Text - Empty Text Node
 <li class="autocomplete_listItem" _value="2763" __item="">
Text - Asian
<li class="autocomplete_highlightedListItem" _value="2823" __item="" _highlighted="true">
Text - Asian Indian

我从网上读了一段代码,是这样的:

idrWebElement autocomplete = idriver.findElement(By.id("txtRace_txtField"));
            autocomplete.clear();
            autocomplete.sendKeys("As");
            Thread.sleep(9000);
            WebElement autocomplete_element = idriver.findElement(By.cssSelector("xxxxxxx"));
            autocomplete_element.click();

请帮助我代替 xxxxxxxx 传递什么。 我正在使用 Java、Selenium、IE 10、Win 8,

【问题讨论】:

  • 你应该为选项添加html代码。
  • @Evgeniy :: 我现在也为选项添加了 HTML。请看
  • 我现在使用下面的代码:WebElement autocomplete = idriver.findElement(By.id("txtRace_txtField"));自动完成。清除(); autocomplete.sendKeys("As");线程.sleep(9000); WebElement autocomplete_element = idriver.findElement(By.cssSelector("898989")); autocomplete_element.click();我应该通过什么来代替 898989
  • 请编辑您的问题,并说明您到底想做什么,以及出现的错误。
  • 我已经编辑了我的问题,我希望它能更多地解释我的问题。 Eclipse 没有显示任何错误。我正在尝试单击在字段中输入任意两个字符时出现的自动完成下拉列表中的任何值。

标签: java selenium autocomplete


【解决方案1】:

在这种情况下,您可以将findElement(By.cssSelector("xxxxxxx")); 更改为findElement(By.cssSelector(".autocomplete_listItem")); 这应该点击

<li class="autocomplete_listItem" _value="2763" __item="">
Text - Asian </li>

【讨论】:

  • 您的代码有效。谢谢你,我真的很感谢你。能否请您也提供您的电子邮件 ID?为此,我将不胜感激。也请告诉我未来,如果我想在自动完成下拉列表中选择第二个值,我应该编辑什么?
  • 您可以尝试将选择器更改为.autocomplete_highlightedListItem 作为选项。
  • 对不起,我没有得到这个:您可以尝试将选择器更改为 .autocomplete_highlightedListItem 作为选项
  • .autocomplete_listItem 更改为.autocomplete_highlightedListItem
【解决方案2】:

在 Google Chrome 中,右键单击要查找其 x 路径的元素,然后单击“检查元素”。 然后,在现在已打开的元素选项卡上,右键单击您的元素并“复制为 X 路径”

【讨论】:

  • 我在问题中提到我使用的是 IE 10。
  • 在 IE10 打开的情况下按 F12,它将打开 Web-dev 工具,您可以执行类似的操作。
  • @MarkRowlands:IE 的 f12 没有显示任何复制 xpath 的选项。
  • 打开 web-dev 工具后,您应该会在页面底部看到框架叠加层。单击左侧的箭头按钮,然后单击要检查的元素。然后它将在 web-dev 框架中突出显示相关的 HTML。
  • @MarkRowlands :对不起,没有得到你。我是 selenium 和这个编程东西的新手。您能否详细说明任何示例或任何解释它的链接?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 2019-01-11
  • 2021-09-20
  • 2014-03-21
  • 2019-09-13
  • 1970-01-01
相关资源
最近更新 更多