0

`Published DateTime Web 要素のみを選択してクリックするにはどうすればよいですか?

私の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

driver.FindElement(By.LinkText("Published DateTime")).Click();が正解です。さらに、javascript-selenium-webdriver を使用している場合。より使いやすい API のためにhttps://npmjs.org/package/webdriver-helperを使用することをお勧めします。

driver.link(':contains("Published DateTime")').click()あなたを助けることができます。

于 2013-10-18T00:39:35.920 に答える
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"));

検証テキストを取得する 2 番目の方法:

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
String cssSelector= "tr>th[scope='col']>a:contains('Published DateTime')"

最初の方法:

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

2番目の方法(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 に答える