在 Selenium 中定位元素
Locating an Element in Selenium
我正在尝试在 java 中使用 Selenium 定位 link。我想用网络驱动点击link。该元素是一个数字,它是另一个页面的 link。这是 html 的部分,其中包含我要查找的元素:
<tr class="DataGridPagerStyle">
<td colspan="5">
<span>1</span>
<a href="javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl01','')">2</a>
<a href="javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl02','')">3</a>
<a href="javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl03','')">4</a>
</td>
</tr>
我想翻页,所以我需要找到 "a href"
元素。有时会有不同的页数。我尝试使用以下 java 代码定位并单击这些元素:
String href = doc.select("tr.DataGridPagerStyle").first().select("a:contains(" + i + ")").first().attr("href");
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a[href=" + href + "]")));
element.click();
对于给定的 i 值,href 字符串确实包含 href 属性的正确值,但是当 运行 代码:
时出现此错误
The given selector a[href=javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl01','')]
is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified
为什么会发生这种情况?select 这些元素的最佳方式是什么?
您可以通过linkText()
找到链接:
link = doc.select("tr.DataGridPagerStyle").first().findElement(By.linkText(i))
link.click()
我正在尝试在 java 中使用 Selenium 定位 link。我想用网络驱动点击link。该元素是一个数字,它是另一个页面的 link。这是 html 的部分,其中包含我要查找的元素:
<tr class="DataGridPagerStyle">
<td colspan="5">
<span>1</span>
<a href="javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl01','')">2</a>
<a href="javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl02','')">3</a>
<a href="javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl03','')">4</a>
</td>
</tr>
我想翻页,所以我需要找到 "a href" 元素。有时会有不同的页数。我尝试使用以下 java 代码定位并单击这些元素:
String href = doc.select("tr.DataGridPagerStyle").first().select("a:contains(" + i + ")").first().attr("href");
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a[href=" + href + "]")));
element.click();
对于给定的 i 值,href 字符串确实包含 href 属性的正确值,但是当 运行 代码:
时出现此错误The given selector a[href=javascript:__doPostBack('ctl00$ctl62$dgPersonSearchResults$ctl19$ctl01','')]
is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified
为什么会发生这种情况?select 这些元素的最佳方式是什么?
您可以通过linkText()
找到链接:
link = doc.select("tr.DataGridPagerStyle").first().findElement(By.linkText(i))
link.click()