如何使用xpath编写if--else语句。
//div[@class='slick-viewport']/div/div
-它给了我5个以下div标签。
<div class="custom-tooltip slick-cell l1 r1" xpath="1">
<svg width="100%" height="25" version="1.1" id="SVG_b244db8a-9345-4d57-a865-115c447e4b33" data-ispopupdisplayallowed="true" data-measureid="484" data-is-pcp-user="false" data-is-po-user="true" onclick="openEngagementWithEcosystemSummary('SVG_b244db8a-9345-4d57-a865-115c447e4b33')" xmlns="http://www.w3.org/2000/svg">
<g></g>
<text x="10" y="17" fill="black" style="font-weight: bolder; font-size: 12px;" id="PopUp_b244db8a-9345-4d57-a865-115c447e4b33"></text>
</svg>
</div>
<div class="custom-tooltip slick-cell l1 r1" xpath="2">
<svg width="100%" height="25" version="1.1" id="SVG_2264e127-682c-426f-a9fe-b3963363f9b3" data-ispopupdisplayallowed="true" data-measureid="486" data-is-pcp-user="false" data-is-po-user="true" onclick="openEPSDTCompletionRateSummary('SVG_2264e127-682c-426f-a9fe-b3963363f9b3')" xmlns="http://www.w3.org/2000/svg">
<g></g>
<text x="10" y="17" fill="black" style="font-weight: bolder; font-size: 12px;" id="PopUp_f32ad3d5-e795-4752-9df4-814f99d265b7">
51% </text>
</svg>
</div>
<div class="custom-tooltip slick-cell l1 r1" xpath="2">
<svg width="100%" height="25" version="1.1" id="SVG_2264e127-682c-426f-a9fe-b3963363f9b3" data-ispopupdisplayallowed="true" data-measureid="486" data-is-pcp-user="false" data-is-po-user="true" onclick="openEPSDTCompletionRateSummary('SVG_2264e127-682c-426f-a9fe-b3963363f9b3')" xmlns="http://www.w3.org/2000/svg">
<g></g>
<text x="10" y="17" fill="black" style="font-weight: bolder; font-size: 12px;" id="PopUp_f32ad3d5-e795-4752-9df4-814f99d265b7">
31% </text>
</svg>
</div>
<div class="custom-tooltip slick-cell l1 r1" xpath="3">
<svg width="100%" height="25" version="1.1" id="SVG_cd847418-1c52-465a-a473-1e3ae2a0b979" data-ispopupdisplayallowed="false" data-measureid="485" data-is-pcp-user="false" data-is-po-user="true" xmlns="http://www.w3.org/2000/svg">
<g></g>
<text x="10" y="17" fill="black" style="font-weight: bolder; font-size: 12px;" id="PopUp_cd847418-1c52-465a-a473-1e3ae2a0b979">
Available
</text>
</svg>
</div>
<div class="custom-tooltip slick-cell l1 r1" xpath="4">
<svg width="100%" height="25" version="1.1" id="SVG_856b33a6-b361-4020-a01c-fbccb9d171de" data-ispopupdisplayallowed="false" data-measureid="500" data-is-pcp-user="false" data-is-po-user="true" xmlns="http://www.w3.org/2000/svg">
<text x="10" y="17" fill="black" style="font-weight: bolder; font-size: 12px;" id="PopUp_856b33a6-b361-4020-a01c-fbccb9d171de">
Available
</text>
</svg>
</div>
简而言之,
//div[@class='@class='slick-viewport'']//div[2]//*[name()='svg' and @data-ispopupdisplayallowed='true']
-提供3个元素(行)
第二行和第三行包含标签文本,该标签文本包含值/字符串“ 51%”和31%,而第一行不包含文本标签的任何值。.
//div[@class='@class='slick-viewport']//div[2]//*[name()='svg' and @data-ispopupdisplayallowed='false'] ---Giving 2 elements(rows)
我的for循环将执行5次(totalNoOfDivs.size()
)
如果...在上述3个条件下的其他语句,则需要帮助将其记录下来,并将其作为for循环的一部分。
第一个条件-不包含任何文本标记。(@data-ispopupdisplayallowed='true')
-----包含文字所必需的第二个条件,例如51%,31%(@data-ispopupdisplayallowed='true')
需要的第三个条件-只需获取文本“可用” (@data-ispopupdisplayallowed='false')
简而言之,所有3种条件在单击行后都会执行不同的操作,因此需要在if ... else语句中加入。 任何帮助将不胜感激.....
答案 0 :(得分:0)
您可以找到所有元素,并使用for循环遍历它们:
var elements = driver.FindElements(By.Xpath("//div[@class='slick-viewport']/div/div"));
for (int i = 0; i < elements.Count; i++)
{
<if then logic here>
}