2017-05-17 138 views
2

我正在写selenium测试,我需要切换到没有id或名称的iframe,哪个父元素包含变量id(所以没有帮助,而且src属性也有变量数据,所以我可以' t直接指向它,就像By.cssSelector("iframe[src='example']")一样,我需要一个xpath选择器,它的目标是src,但也使用contains。我试图学习如何在Chrome的Copy XPath之外构建xpath,但我无法弄清楚这一点。 !这里是iframe的HTML:xpath:找到具有属性的元素AND包含?

<iframe scrolling="auto" 
    src="/admin/catalog/manage_variants_in_product.jsp?productId=160502" 
    width="100%" height="100%" frameborder="no" 
    style="position:absolute; top:0px; left:0px;"> 
</iframe> 

回答

2

“包含” CSS选择器可以帮助在这里:

iframe[src*=manage_variants_in_product] 

仅供参考,也有^=$=,分别表示“开始于”和“结束于”。

+0

是的,就是这样!完善!我环顾四周,发现cssSelectors中没有'contains',但我从未想过要考虑通配符。非常感谢! – kroe761

+1

该参考文献有很多很好的信息。 https://www.w3.org/TR/selectors/#selectors – JeffC

0

更好的方法,我建议学习建筑XPath或csspath是Firepath附加的Firefox

首先在Firefox浏览安装Firebug的,然后再安装Firepath。

在那里你会得到有效的方式来获取xpath或自己评估xpath构建

+0

Firebug和其他工具不会创建高效的XPath。这可能很容易,但最终的结果并不好。 – JeffC

+0

我上次使用它的时间已经过去了几年,但它与开发工具中Chrome内置的“Copy XPath”看起来非常相似。如果你需要更复杂的东西,那么这对于快速抓取来说确实不错。 – kroe761

+0

@ kroe761,你创建的xpath又如何检查天气是否正确?我正在使用Firepath来评估xpath。你如何验证相同?如果您正在使用其他工具,请告诉我。 – NarendraR

相关问题