澄清相对xpath

时间:2016-06-30 09:22:24

标签: selenium selenium-webdriver testng

我想要一个代表元素2 w.r.t元素1的xpath,如下图所示。我可以使用follow-sibling构建它吗?

任何帮助表示感谢。

enter image description here

<div id="leads_data" class="uk-width-large-8-12 uk-container-center">
 <div class="md-card-list leads_cards_list">
  <ul class="">
   <li class="item-shown" style="margin: 40px -20px; min-height: 90px;">
	<div class="md-card-list-item-menu" data-uk-dropdown="{mode:'click',pos:'bottom-right'}">
		<span>12:35:22 PM</span>
		<a class="md-btn md-btn-flat md-btn-wave waves-effect waves-button" onclick="showModal(446)" data-uk-modal="{ center:true }" href="#lead_info">Edit</a>
	</div>
	<div class="md-card-list-item-sender">
		<span>
			<i class="material-icons">face</i>
 			CDYCUQYGNKYNFNFCWOUO
		</span>
	</div>
	<div class="md-card-list-item-sender">
		<span>
			<i class="material-icons">call</i>
 			+91-1119771441
		</span>
	</div>
	<div class="md-card-list-item-subject">
		<span>
			<i class="material-icons">email</i>
			 rnkntsoorh@jd.com
		</span>
	</div>
	<div class="md-card md-card-list-item-content-wrapper uk-margin-top" onclick="showModal(446)" style="display: block; opacity: 1;">
		<div class="md-card-content leads_card_content">
			<div class="uk-text-large uk-margin-remove">
				<b>Remarks:</b>
 				Some remarks of TSYNTORSAC
			</div>
		</div>
	</div>
<br/>
</li>

我想从包含文本“CDYCUQYGNKYNFNFCWOUO”的div开始,找到文本“TSYNTORSAC的一些评论”的div。

4 个答案:

答案 0 :(得分:1)

您可以在xPath下面使用: -

//span[contains(.,'CDYCUQYGNKYNFNFCWOUO')]/parent::div/following::div[contains(.,'Some remarks of TSYNTORSAC')][last()]

//span[contains(.,'CDYCUQYGNKYNFNFCWOUO')]/parent::div/following::div[contains(.,'Some remarks of TSYNTORSAC') and contains(@class, 'uk-text-large uk-margin-remove')]

//span[contains(.,'CDYCUQYGNKYNFNFCWOUO')]/parent::div/following-sibling::div[contains(.,'Some remarks of TSYNTORSAC')]/descendant::div[contains(@class, 'uk-text-large uk-margin-remove')]

//span[contains(.,'CDYCUQYGNKYNFNFCWOUO')]/parent::div/following-sibling::div[contains(.,'Some remarks of TSYNTORSAC')]/div/div

希望它会对你有所帮助.. :)

答案 1 :(得分:0)

除了Saurabh gaur描述的方式之外,您还可以使用following-sibling找到所需的元素。

.//span[text()='CDYCUQYGNKYNFNFCWOUO']/../following-sibling::div[position()=3]//div[contains(.,'Some remarks of TSYNTORSAC')]

.//span[text()='CDYCUQYGNKYNFNFCWOUO']/../following-sibling::div[position()=3]/div/div[contains(text(),'Some remarks of TSYNTORSAC']

希望这有帮助

答案 2 :(得分:0)

您可以简单地获取包含所需文本的元素,而不是使用following

//li[div[normalize-space(.)='face CDYCUQYGNKYNFNFCWOUO']]/div[last()]

答案 3 :(得分:0)

试试这个: -

//div[contains(@class,'md-card-list-item-sende') and contains(.,'CDYCUQYGNKYNFNFCWOUO')]/following::div[contains(@class,'md-card-list-item-content') and descendant::b[contains(.,'Remarks')]]