首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Selenium或Selenide选择md-autocomplete选项?

如何使用Selenium或Selenide选择md-autocomplete选项?
EN

Stack Overflow用户
提问于 2019-11-19 18:09:41
回答 2查看 278关注 0票数 0

这是我的Java尝试,但是我应该修复什么呢?

代码语言:javascript
复制
SelenideElement product = $(By.id("product"));
Assertions.assertEquals("Search product", product.attr("md-floating-label"));
product.find(By.tagName("input")).val("test");
SelenideElement span = product.find(By.tagName("span")); //this one and last lines does not work as expected
product.sendKeys(Keys.ARROW_DOWN);
product.pressEnter();

和HTML代码

代码语言:javascript
复制
<md-autocomplete id="product" flex="85" md-selected-item="ctrl.orderItem.product" md-search-text="ctrl.productQuery" md-items="item in ctrl.findProduct(ctrl.productQuery)" md-item-text="item.name" md-delay="300" md-floating-label="Search product">
  <div layout="row" class="item" layout-align="start center">
    <span md-highlight-text="ctrl.productQuery">{{item.name}}</span>
  </div>
</md-autocomplete>
EN

回答 2

Stack Overflow用户

发布于 2019-11-19 23:52:21

我会尝试用XPath替换它,而不是做product.find(By.tagName("span"));

代码语言:javascript
复制
SelenideElement span = product.find(By.xpath("//*[@id='product']/div/span"));

问题是span不是产品的直接子元素(这是一个md-autocomplete元素),所以您需要一个稍微复杂一点的定位器来查找span

票数 0
EN

Stack Overflow用户

发布于 2019-11-20 19:59:51

也许你不需要做这件事Assertions.assertEquals("Search product", product.attr("md-floating-label"));

如果标签为'Search product‘的元素不存在,您将得到一个SoSuchElementException,如下所示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58931438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档