【问题标题】:Finding the idNumber element from this below HTML code从下面的 HTML 代码中找到 idNumber 元素
【发布时间】:2018-04-29 16:12:38
【问题描述】:
<div id="rightContent" style="display: inline-block; width: 700px; vertical-align: top;">
                <div>
                    <h1><em class="SomethingHeading">Something</em></h1>
                </div>

<div class="content scaffold-list" role="main">
    <h1>Search</h1>



    <form action="/SomethingArchiveUI/search/search" method="post">
        <table>
            <tbody>
            <tr>
                <td>ID/Registration Number:</td>
                <td>
                    <**input type="text" name="idNumber" maxlength="20" value="" id="idNumber"**>
                </td>
            </tr>
            <tr>
                <td>Client Name:</td>
                <td>
                    <input type="text" name="clientName" maxlength="50" value="" id="clientName">
                </td>
            </tr>
            <tr>
                <td>Client Surname:</td>
                <td>
                    <input type="text" name="clientSurname" maxlength="50" value="" id="clientSurname">
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="hidden" name="_dateRange"><input type="checkbox" name="dateRange" value="true" id="dateRange"><label for="dateRange">&nbsp;Use date range?</label>
                </td>
            </tr>
            <tr>
                <td colspan="2"><p>From: <input type="text" name="fromDate" value="" maxlength="10" id="fromDate" class="hasDatepicker"> To: <input type="text" name="toDate" value="" maxlength="10" id="toDate" class="hasDatepicker"></p></td>
            </tr>
            </tbody>
        </table>
        <div style="display: inline;">
            <div id="divSubmit">
                <input type="submit" name="cmdSearch" class="buttons" value="Search" id="cmdSearch">
            </div>
            <div id="divBusy" style="display: none;">
                Busy Searching...
            </div>
        </div>
    </form>

    <table id="customerIdentificationList" style="display: block;">


    </table>
    <div id="loadingMessage" style="display: none;">
        Loading. Please wait.
    </div>
</div>


            </div>

我使用下面的代码登录到应用程序,但类似的代码似乎不适用于上面的这个表单。我正在尝试查找“idNumber”元素:

driver.findElement(By.xpath("//*[@id='idnumber']")).sendKeys("Username");
driver.findElement(By.xpath("//*[@id=\'password\']")).sendKeys("Password");
driver.findElement(By.xpath("//*[@id=\'submit\']")).click();

我得到的错误是:org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":

期待您的回复。

【问题讨论】:

  • 为什么idNumber元素中有*? --> &lt;**input ... id="idNumber"**&gt;
  • Lino,我只是放在那里突出显示
  • 我猜这只是一个错字? idnumber 应该是 idNumber

标签: java html xpath selenium-webdriver selenium-chromedriver


【解决方案1】:

尝试使用以下方式 -

首先获取根元素并将其保存到 WebElement 对象中。然后查找输入元素idNumber

WebElement elem = driver.findElement(By.cssSelector("#rightContent > div.content.scaffold-list > form"));   
elem.findElement(By.id("idNumber")).sendKeys("Username");

【讨论】:

  • 仍然得到> org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“#rightContent > div.content。脚手架列表 > 表单"}
  • @Tsietsi 你是否使用了像 By.cssSelector("input[type='text']") 这样的 CSS 选择器而不是 By.id("idNumber" ) 在上述解决方案中?在这种情况下,解决方案可能需要进行一些修改。我应该这样做吗?
  • @Tsietsi 你得到你的解决方案了吗?
  • 请继续。我一直在尝试所有建议的解决方案
【解决方案2】:

我不知道在这种情况下您不能使用 By.id() 或 By.xpath 的原因。但是您可以尝试使用以前的 td.txt 中的文本查找输入。我希望下一个代码会有所帮助:

driver.findElement(By.xpath("//td[text()='ID/Registration Number:']/following-sibling::td/input")).sendKeys("Username");

【讨论】:

  • 我注意到您的一些代码已经转义了引号,如下所示:“//*[@id=\'password\']”。可以吗?
  • 那部分代码运行良好。它实际上是一种不同的形式
【解决方案3】:

为什么不直接使用By.id()

driver.findElement(By.id("idNumber"));

【讨论】:

  • @Tsietsi 你确定没有错字?
  • @Tsietsi 你的代码正在寻找idnumber 并且元素被定义为idNumber
  • Lino,我确定没有错字。带有“idnumber”的代码是登录功能的不同元素。另一个“idNumber”(我试图找到)用于不同的形式
  • @Tsietsi 那你为什么还要提供那个代码呢?这只是令人困惑
  • Lino,很抱歉造成混乱。我认为提供这部分代码将有助于我将问题置于上下文中,因为它适用于一种形式,但在另一种形式上失败
【解决方案4】:

使用:.//input[@id='idnumber']

【讨论】:

  • 那是 xpath 吗?
  • 我试过了,不幸的是没有运气
  • 客户名称: 你有这个 xpath 吗?
猜你喜欢
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 2021-11-17
相关资源
最近更新 更多