我正在使用selenium FirefoxDriver自动化测试用例(我是新手)
我需要一种方法来定位Button(我认为它实现为div / span)
当我在Selenium IDE //span[contains(text(), 'Login')]
此外,我可以使用span标记和类名css=span.x-btn-button
我需要的是一种使用带有标签+类名+内部html文本的CSS定位器的方法。 (这将帮助我处理我的应用程序中的一些其他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>
答案 0 :(得分:1)
这篇文章有一些非常好的方法可以使用xpath / css进行元素识别!
Is it possible to get next sibling using cssContainingText in Protractor
函数cssContainingText特定于Protractor。
答案 1 :(得分:1)
<击> #Css 撞击>
<击>findElement(By.cssSelector("span.x-btn-button:contains('Login'));
请记住,每个浏览器都不支持CSS中的这个伪类,特别是PhantomJS不支持此功能(可能有其他浏览器无法使用,但这是我记得的那个。)
来自Here,约占网页总数的75%。
看了这个之后,似乎&#34;的伪选择器包含(&#39;&#39;)&#34;不再符合CSS3规范。 Reference
如果您的Web应用程序使用JQuery,您可以使用类似的选择器检索该方法,否则,您将不得不将JQuery加载到页面然后使用它,但那真的不会使用CSS,而是JQuery中使用CSS语法的javascript选择器函数。
目前,您所要求的是(官方)CSS不支持。