选择网页表单上的按钮

时间:2017-03-27 06:22:24

标签: xpath selenium-webdriver

我想点击upload标记内的<form>按钮。

我正在使用java selenium。我尝试使用xpath locator点击按钮但无法识别它。

Html代码:

    <form id="sportForm" action="/sportmetadata/saveSport" method="post" enctype="multipart/form-data">
        <table>
        <tr class="hidden">
          <td class="lbl-dialog">Id</font></td>
          <td>
<td class="lbl-dialog width200" >Background for Team </td>
                <td>
                  <input type="button" class="btn btn-default btn-command btn-upload" value="Upload" onClick="openFileBrowser('sp_backgroundUploadId')" />
                  <input id="sp_backgroundUploadId" multiple type="file" class="no-display" name="backgroundUpload" />
                  <input id="backgroundDelesectUpload" value="Clear" type="button" onclick="clearSelection('sp_backgroundUploadId','sp_backgroundDisplayTableId');" class="btn btn-default btn-command btn-upload" />
                </td>
        </tr>

请帮忙

提前致谢

3 个答案:

答案 0 :(得分:0)

你应该尽量避免直接从浏览器中复制XPATH,因为它们不是稳定的。当我使用相同的HTML代码从我的浏览器复制xpath时

//*[@id="sportForm"]/table/tbody/tr/td[4]/input[1]与您发布的内容不同

你应该更加智能地构建你的xpath 这应该工作 //input[@type='button' and @value='Upload']

答案 1 :(得分:0)

使用xpath locator找到上传按钮。

//input[@value='Upload'][@type='button']

说明: - 使用value标记的type<input>属性。

建议:,而不是使用absolute xpath,请使用relative xpath

  

OR

使用cssSelector

找到上传按钮
input[value='Upload'][type='button']

说明: - 使用value标记的type<input>属性。

答案 2 :(得分:0)

您可以使用cssSelector识别如下:

driver.findElement(By.cssSelector("#sportForm > table > tr td:nth-child(3)>input"))