首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在selenium中选中extjs复选框?

如何在selenium中选中extjs复选框?
EN

Stack Overflow用户
提问于 2012-12-26 14:42:35
回答 3查看 3.8K关注 0票数 0

我正在测试一个用ExtJ(部分.)实现的web应用程序,这些复选框被实现为按钮。使用Selenium库用java编写的测试。

当我嘲笑按钮的时候,我用的是:

代码语言:javascript
运行
复制
selenium.click("css=input.x-form-field.x-form-checkbox",true);

现在,我正在尝试获取复选框的状态(不管是否选中),但我不知道如何做到这一点。

以下是实现:

代码语言:javascript
运行
复制
<td id="checkboxfield-1028-bodyEl" class="x-form-item-body x-form-cb-wrap" colspan="3" role="presentation" style="width: 100%;">
<input id="checkboxfield-1028-inputEl" class="x-form-field x-form-checkbox" type="button" hidefocus="true" autocomplete="off" aria-invalid="false" style="-moz-user-select: text;">
<label id="checkboxfield-1028-boxLabelEl" class="x-form-cb-label x-form-cb-label-after" for="checkboxfield-1028-inputEl">Active</label>

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-26 18:15:54

我不太记得ExtJ了,但我假设检查和未检查是两个css类。尝试找出这些类(使用Chrome查看页面。工具)。

在页面对象上定义两个WebElements:

代码语言:javascript
运行
复制
@FindBy(cssSelector=".x-form-checkbox.unchecked")
WebElement checked;

@FindBy(cssSelector=".x-form-checkbox.checked")
WebElement unchecked;

然后,您需要等待按钮被选中或未选中。这可以通过添加以下方法来完成:

代码语言:javascript
运行
复制
protected final void waitForElementPresent(final By by) {
   seleniumContext.getWebDriverWait().until(new ExpectedCondition() {
      @Override
      public Boolean apply(WebDriver driver) {
        try {
          driver.findElement(by);
          return true;
        } catch (NoSuchElementException e) {
          return false;
        }
      }
   });
}
票数 0
EN

Stack Overflow用户

发布于 2012-12-26 15:10:49

我假设您使用的是can驱动程序,所以,您可以做的是:

代码语言:javascript
运行
复制
 isChecked = e.findElement(By.tagName("input")).Selected;

代码语言:javascript
运行
复制
 isChecked = e.findElement(By.Id("checkboxfield-1028-bodyEl")).Selected;

这就给了你这个州。

您在为它寻找一个JUnit断言吗?

票数 0
EN

Stack Overflow用户

发布于 2012-12-27 12:56:11

您可以尝试使用id的一部分查找复选框:

代码语言:javascript
运行
复制
driver.findElement(By.xpath("//input[contains(@id, 'checkboxfield')]")).isSelected();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14042121

复制
相关文章

相似问题

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