我正在尝试按名称获取元素,我遇到了问题
这是来自亚马逊网站的元素:
<input type="text" style="width: 100%; background-color: rgb(255, 255, 255);" title="Search for" size="50" value="" name="field-keywords" class="searchSelect" autocomplete="off" id="twotabsearchtextbox">
这就是我试图通过它的名字来获取这个元素的方式:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.amazon.com/" />
<title>New Test</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">New Test</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>twotabsearchtextbox</td>
<td>some keyword</td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>document.Forms[0].Element["field-keywords"]</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
但它给了我错误的信息:/你能给我一些解决方案吗?
我正在使用1.07和FF 3.6.10
答案 0 :(得分:2)
您可以将verifyElementPresent
更改为“按姓名获取”
<tr>
<td>verifyElementPresent</td>
<td>name=field-keywords</td>
<td></td>
</tr>
或使用XPath:
<tr>
<td>verifyElementPresent</td>
<td>xpath=//form//input[@name="field-keywords"]</td>
<td></td>
</tr>
简单形式是:
verifyElementPresent | name=field-keywords
verifyElementPresent | xpath=//form//input[@name="field-keywords"]
答案 1 :(得分:1)
最简单的方法是使用JavaScript DOM引用:
verifyElementPresent | document.getElementsByName('field-keywords')[0]
答案 2 :(得分:1)
我肯定会建议使用XPath。您可以在http://www.w3schools.com/xpath/
上找到XPath寻址的基础知识