2

以下の html タグでラベル テキストを検索するために、selenium Web ドライバーを使用しています。

<tr id="row" style="display: inline; padding-left: 10px; padding-right: 10px;">
<td>
<table width="776" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td align="right">&nbsp;</td>
<td>&nbsp;</td>
<td align="right">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="92" height="25" align="left">**Label Text&nbsp**;</td>
<td width="227">
<td width="170" align="left">">**Label Text 2&nbsp**;</td>
</td>
</tr>

driver.findElement(By.id("row")).getText() を使用しましたが、何も取得されません。ラベル テキストを印刷するにはどうすればよいですか。ありがとう。

4

4 に答える 4

1

「ラベル テキスト」セルにアクセスするには、セルを含む行ではなく、セル自体を検索する必要があります。WatiN を使用している場合は、これが当てはまります。「ラベル テキスト」を含む要素を見つける別の方法は次のとおりです。

ReadOnlyCollection<IWebElement> temp = driver.FindElements(By.XPath("//td[@text='Label Text'])); 

例の「ラベル テキスト」が別のテキストのプレース ホルダーである場合、これは扱いにくくなり、セルを含む tableRow 内の各セルを取得しようとするだけで済みます。ただし、最初の行だけが id を持っているようです。お役に立てれば!

編集:または、必要なセルが正確にわかっていて、そのセルのサイズが一意である場合(例のように)、(非常に)ハックなソリューションで、すべてのセルを見つけてから、それらの幅を手動で検索できます。例: foreach(tempCells の IWebElement temp) { if(temp.Size.Width == 170) temp.Text; }

于 2012-04-11T00:05:57.677 に答える
0
driver.FindElement(By.XPath(xpath)).GetAttribute("text")
于 2012-04-11T03:50:31.893 に答える
0

私の見解:

List<WebElement> list;
list = driver.findElements(By.xpath("id('row')//td[string-length(text()) > 1]"));

これは、1 文字より長いテキスト ノードを持つ要素Listのを取得する必要があります (実際に 5 =) をカウントする場合は 5 に変更します)。<td>&nbsp;

または多分

list = driver.findElements(By.xpath("id('row')//td[@align='left']"));

取得したいすべての要素align = 'left'に、例に見られる部分が本当に共通している場合。

于 2012-06-09T00:02:45.710 に答える
0

メソッドを使用するgetText

driver.findElement(By.xpath("")).getText();
于 2012-04-11T04:16:10.697 に答える