0

如何仅选择`Published DateTime webelement并单击它?

我的 HTML 代码

<tr>
<th scope="col">
...........
</th>
<th scope="col">
...........
</th>
<th scope="col">
...........
</th>
<th scope="col">
...........
</th>
........
<th scope="col">
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$AddControl1$gv','Sort$PublishDateTime')">Published DateTime</a>
</th>
</tr>
4

4 回答 4

2

试试这个:

driver.FindElement(By.LinkText("Published DateTime")).Click();
于 2012-09-14T07:24:06.517 回答
0
String cssSelector= "tr>th[scope='col']>a:contains('Published DateTime')"

第一种方式:

driver.findElement(By.css(cssSelector)).click()

第二种方式(使用js):

public void jsClick(String css){
JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x = $(\'"+css+"\');");
        stringBuilder.append("x.click();");
        js.executeScript(stringBuilder.toString());
}
jsClick(cssSelector)

希望这对你有用)

于 2012-09-13T21:58:15.817 回答
0

如果要验证文本,可以使用以下方法: - 如上所述定位元素:

String cssSelector= "tr>th[scope='col']>a:contains('Published DateTime')"

第一种获取验证文本的方法:

String txt=driver.findElement(By.cssSelector(cssSelector)).getText().trim();
//validating 
Assert.assertTrue(txt.equals("blablabla"));

获取验证文本的第二种方法:

publiv String getTextByJs(String css){
 JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("var x = $(\""+css+"\");");
        stringBuilder.append("return x.text().toString();")       ;


       String res= (String) js.executeScript(stringBuilder.toString());
}
String txt=getTextByJs(cssSelector);
Assert.assertTrue(txt.equals("blablabla"));

请享用)

于 2012-09-14T07:45:03.643 回答
0

driver.FindElement(By.LinkText("Published DateTime")).Click();是正确答案。此外,如果您使用的是 javascript-selenium-webdriver。建议您使用https://npmjs.org/package/webdriver-helper以获得更友好的 api。

driver.link(':contains("Published DateTime")').click()可以帮助你。

于 2013-10-18T00:39:35.920 回答