Selenium Webdriver将CSS选择器转换为XPath

时间:2018-12-31 18:07:54

标签: selenium-webdriver xpath

这是针对Selenium Webdriver xPath的。请参考屏幕截图。我正在编写以下XPath for Collection#1按钮,但这只是给按钮的临时文本。但是一旦实施BLL,此文本将更改。那么如何定义XPath?屏幕捕获中有UI和HTML。

现在我在脚本中给出了以下xpath。

//*[@class='infix' and text()='Collection #1']

这是xPath

/html/body/esx-root/div/esx-prospect-landing/esx-community-search-hero/div[2]/div[2]/div/button[1]

这是CSS

html body esx-root div.container esx-prospect-landing.ng-star-inserted esx-community-search-hero div.content-wrapper div.bottom-wrapper div.hero-actions button span.infix

这是CSS选择器

.hero-actions > button:nth-child(1) > span:nth-child(2)

如何在脚本中定义XPath的短路径。

enter image description here

1 个答案:

答案 0 :(得分:0)

您应该去阅读一些教程来编写有效且自定义的xpath或CSS路径

  1. 有很多教程网站,您可以根据自己的兴趣进行引用。

    https://www.guru99.com/xpath-selenium.html

    https://www.softwaretestinghelp.com/css-selector-selenium-locator-selenium-tutorial-6/

    https://selenium-by-arun.blogspot.com/2012/12/25-locate-ui-elements-by-xpath.html

  2. 始终首选相对xpath而不是绝对xpath,并且首选CSS选择器,直到您没有最终选择使用xpath(基于文本定位元素)

现在就您的情况而言,您可以在xpath下面引用以基于文本定位元素

//div/button[contains(.,'Collection #1')]

OR

//button/span[class='infix'][contains(.,'Collection #1')]

并且在CSS选择器下方

.hero-actions>button span.infix

此外,您可以采用其他周围的元素来使其独特。