如何使用CSS定位器与标签+类名+内部HTML文本跨度识别按钮(How to use CSS loc

2019-10-22 14:17发布

我使用硒FirefoxDriver自动化测试案例(我是新在此)

我需要一种方法来定位按钮(我认为这是实现为DIV / SPAN)

这个XPath定位器工作时,我尝试在硒IDE //span[contains(text(), 'Login')]

此外,我可以使用span标签和类名使用CSS定位css=span.x-btn-button

我需要的是使用CSS定位器与标签+类名+内部HTML文本的方式。 (这将帮助我在handelling其他一些UI元素在我的应用程序)

HTML是如下

 <div id="toolbar-1035" class="x-toolbar x-docked x-toolbar-footer x-docked-bottom x-toolbar-docked-bottom x-toolbar-footer-docked-bottom x-box-layout-ct" style="right: auto; left: 0px; top: 141px; width: 223px;"> <div role="presentation" class="x-box-inner " id="toolbar-1035-innerCt" style="width: 217px; height: 22px;"> <div role="presentation" class="x-box-target" id="toolbar-1035-targetEl" style="width: 217px;"> <a id="button-1036" unselectable="on" hidefocus="on" class="x-btn x-unselectable x-box-item x-toolbar-item x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon" style="right: auto; top: 0px; margin: 0px; left: 0px; width: 75px;" tabindex="0"> <span unselectable="on" class="x-btn-wrap" role="presentation" id="button-1036-btnWrap"> <span role="presentation" class="x-btn-button" id="button-1036-btnEl" style="background-color: transparent;"> <span unselectable="on" class="x-btn-inner x-btn-inner-center" id="button-1036-btnInnerEl" style="background-color: transparent;">Login</span> <span style="" unselectable="on" class="x-btn-icon-el " id="button-1036-btnIconEl" role="presentation"></span> </span> </span> </a> </div> </div> </div> 

Answer 1:

这个职位有一些真正的好方法使用XPath / CSS的元素识别!

是否有可能在量角器使用cssContainingText得到一个同级

功能cssContainingText然而具体到量角器。



Answer 2:

#Css

findElement(By.cssSelector("span.x-btn-button:contains('Login'));

请记住,在这个CSS伪类不被每一个浏览器的支持,特别是在此不PhantomJS支持(可能还有其他的浏览器,这并不工作中,但是这是一个我记得)。

从这里 ,的方式在页面中向下约75%。

编辑:

看着这多一点之后,它似乎的伪选择“:包含(‘’)”不再是CSS3规范之内。 参考

如果你的Web应用程序使用了jQuery,您可以获取元素具有类似选择这种方式,否则,你将不得不JQuery的加载到页面,然后使用它,但真的不会使用CSS,而JavaScript的选择功能内JQuery的使用CSS语法。

结论:

目前,你所问的是(官方)不支持CSS。



文章来源: How to use CSS locator with tag + class name + inner html text to identify a button in a span