【问题标题】:How to send text to the username field using Selenium and Java如何使用 Selenium 和 Java 向用户名字段发送文本
【发布时间】:2020-07-17 19:10:13
【问题描述】:

我正在尝试将信息发送到文本字段,但我很难找到它。有多个同名元素,很难找到。

<div class="form-group">
  <label for="username">LDAPTEST Username</label>
  <input type="text" name="username" id="username" class="form-control top" title="This field is required." autofocus="autofocus" data-qa-selector="username_field" required="required">
  <p class="gl-field-error hidden">This field is required.</p> 
</div>

我尝试了以下方法:

username_By = By.id("username")

username_By = By.cssSelector("input[data-qa-selector='username_field']")

我在等待元素可见时遇到 TimeoutException。

wait.until(ExpectedConditions.visibilityOfElementLocated(username_By));

关于如何定位元素的任何建议?谢谢

【问题讨论】:

    标签: java selenium xpath css-selectors webdriverwait


    【解决方案1】:

    //label[contains(text(),'LDAPTEST Username')] 请使用此 xpath 定位元素以发送密钥

    【讨论】:

      【解决方案2】:

      这是一个 用户名 字段,您可能打算将一些文本发送到所需字段。因此,要将字符序列发送到 LDAPTEST 用户名 字段,而不是 visibilityOfElementLocated(),您需要将 WebDriverWait 用于 elementToBeClickable(),并且您可以使用以下任一 Locator Strategies

      • cssSelector:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.form-control.top#username[name='username']"))).sendKeys("anibal-bojorquez");
        
      • xpath:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='form-control top' and @id='username'][@name='username']"))).sendKeys("anibal-bojorquez");
        

      更新

      尝试以下替代方案:

      • cssSelector:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("label[for='username']"))).sendKeys("anibal-bojorquez");
        
      • xpath:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//label[@for='username']"))).sendKeys("anibal-bojorquez");
        

      【讨论】:

      • TimeoutException 被抛出,等待元素可点击
      • @anibal-bojorquez 查看更新的答案并告诉我状态。
      • 我尝试了 cssSelector 和 xpath,但仍然收到 TimeoutException
      • 将鼠标悬停在显示 input#username.form-control.top 的文本字段上
      猜你喜欢
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 2015-02-04
      • 2018-12-26
      • 2018-11-26
      相关资源
      最近更新 更多