1

自動化された WebDriver テストのテキスト行をキャプチャして、後で比較に使用しようとしています。しかし、WebDriver で動作する XPath が見つかりません。タグに含まれていないテキストをキャプチャするために以前に text() 関数を使用しましたが、この例では機能していません。これが HTML です。このテキストは決して同じではないことに注意してください。そのため、contains や同様の関数は使用できません。

<div id="content" class="center ui-content" data-role="content" role="main">
<div data-iscroll="scroller">
<div class="ui-corner-all ui-controlgroup ui-controlgroup-vertical" data-role="controlgroup">
<a class="ui-btn ui-corner-top ui-btn-hover-c" style="text-align: left" data-role="button" onclick="onDocumentClicked(21228772, "document.php?loan=********&folderseq=0&itemnum=21228772&pageCount=3&imageTypeName=1003 Application - Final&firstInitial=&lastName=")" href="#" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c">
<span class="ui-btn-inner ui-corner-top">
<span class="ui-btn-text">
<img class="checkMark checkMark21228772 notViewedCompletely" width="15" height="15" title="You have not yet viewed this document." src="../images/white_dot.gif"/>
1003 Application - Final. (Jan 11 2012  5:04PM)
</span>
</span>
</a>

この例では、キャプチャしようとしているテキストは次のとおりです。1003 Application - Final。(2012 年 1 月 11 日 5:04PM) Firebug を使用して要素を検査し、次の XPath を試しましたが、成功しませんでした。

html/body/div[1]/div[2]/div/div/a[1]/span/span
html/body/div[1]/div[2]/div/div/a[1]/span/span/text()

WebDriver テストは C# で記述されています。

4

4 に答える 4

1

これを使用することもできます

driver.FindElement(By.XPath(".//div[@id='content']/following-sibling::span[@class='ui-btn-text']") 

また

var elem = driver.FindElement(By.Id("Content"));
string text = string.Empty;
if(elem!=null) {
   var textElem = elem.FindElement(By.Xpath(".//following-sibling::span[@class='ui-btn-text']"));
   if(textElem!=null) text = textElem.Text();
}
于 2013-02-28T06:47:43.383 に答える
1

XPath からスパン タグを削除することで、この問題を解決できました。

GetText("html/body/div[3]/div[2]/div/div/a[1]", SelectorType.XPath);
于 2013-02-28T15:51:18.953 に答える
0

アプローチ: 指定された DOM から CSS セレクターを見つける

派生 CSS:css=#content div.ui-controlgroup > a[onclick*='onDocumentClicked'] > span > span

C# ライブラリ メソッドを使用してテキストを取得します。

于 2014-04-04T07:03:55.227 に答える
0

python webdriver コードは次のようになります

driver.find_element_by_xpath("//span[@class='ui-btn-text']").text

しかし、すべてのコードを見ることができないため、ロケーターは一意ではない可能性があります

PS のようなロケーターを使用しないようにしてくださいhtml/body/div[1]/div[2]/div/div/a[1]/span/span

于 2013-02-27T18:48:18.613 に答える