0

子ではなく親スパンWeb要素のみを選択するにはどうすればよいですか?

リストsummaryLinks=summary.findElements(By.xpath( ""));

私のHTMLコード:

<li>
<div class="mod-indent mod-indent-2">
<a href="http://mysite.com">
<img class="activityicon" alt="URL" src="http://mysite.com">
<span class="instancename">LinkText <span class="accesshide "> URL</span></span>
</a>
</div>
</li>

次のxpathを試しましたが、機能しませんでした
。//div[@class='mod-indent mod-indent-2'] / a / span [@ class ='instancename']

.//div[@class='mod-indent mod-indent-2'] / a / span [1]

.//div[@class='mod-indent mod-indent-2'] / a /span/。

.//div[@class='mod-indent mod-indent-2'] / a / span [position()= 1]

.//div[@class='mod-indent mod-indent-2'] / a / span / span [position()= 1]

4

2 に答える 2

5

複数の方法がありますが、いくつかあります。

By.XPath("//div[contains(@class, 'mod-indent-2')]/descendant::span[@class='instancename']");

By.XPath("//span[@class='instancename']");

By.XPath("//span[@class='accesshide ']/..");

By.ClassName("instancename");

By.CssSelector("span.instancename");

By.XPath("//span[text()='Link Text']");
于 2012-05-29T22:20:42.577 に答える
0

WebDriverコード:

List <WebElement> summaryLinks = 
summary.findElements(By.cssSelector("span.instancename")); 
List <String> links = new ArrayList <String> (); 
for (int i=0; i<summaryLinks.size(); i++){ 
        WebElement element =summaryLinks.get(i); 
         if (element.isDisplayed() && element.isEnabled()){ 
         String str  = element.getText(); 
         links.add(str);}} 
System.out.println(links); 

結果は次のようになります。

[Announcements 
Forum, Student Lounge 
Forum, Welcome 
Page, Instructor Bio 
URL, Course Schedule 
Page] 

ここで、links.size()返すと、正しい数の要素が返されます(つまり、親スパンのみが含まれます)。

これが単なる印刷物の返品の問題であるかどうかはわかりません。のリターンをリンクに追加する前trim()に試し ましたが、結果は同じです。toString()getText()

于 2012-05-31T03:38:02.110 に答える