我想点击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>
请帮忙
提前致谢
答案 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"))