如何在selenium ide和webdriver中找到随机xpath

时间:2014-02-04 17:07:33

标签: java selenium selenium-webdriver selenium-ide

在我的网站上有一个以文本形式接收用户输入的表单

使用firepath我追踪该位置的xpath

.//*[@id='cphSiteContentView_cphContentPanel_ucBookingSummary_ucShoppingCart_rptProductList_ctl00_0_ucTravellersContactDetails_0_rptRoomsDetails_0_rptAdultDetails_0_txtFirstName_0']

但是当我再次加载同一页面时,我会得到以下路径

NewXPath = .//*[@id='cphSiteContentView_cphContentPanel_ucBookingSummary_ucShoppingCart_rptProductList_ctl00_0_ucTravellersContactDetails_0_rptRoomsDetails_0_rptAdultDetails_1_txtFirstName_1']

在观察上述路径后,我注意到只有adultdatails_0_txtFirstname_0部分变为adultdatails_1_txtFirstname_1

注意:每次我为adultdetails获取一个新号码,txtfirstname。

我尝试过xpath模式匹配但没有取得任何成功。所以需要帮助来处理这个

任何帮助都会受到欢迎

2 个答案:

答案 0 :(得分:3)

您可以在xpath中使用starts-with() or contains()

//*[starts-with(@id,'cphSiteContentView_cphContentPanel_ucBookingSummary_ucShoppingCart_rptProductList_ctl00_0_ucTravellersContactDetails_0_rptRoomsDetails_0_rptAdultDetails')]

如果您更喜欢cssSelector,则可以使用 * = $ = ^ = 等符号。

[id^='cphSiteContentView_cphContentPanel_ucBookingSummary_ucShoppingCart_rptProductList_ctl00_0_ucTravellersContactDetails_0_rptRoomsDetails_0_rptAdultDetails']

答案 1 :(得分:0)

Try use the regular expression, like
.//*[starts-with(@id,'cphSiteContentView_cphContentPanel_ucBookingSummary_ucShoppingCart_rptProductList_ctl00_0_ucTravellersContactDetails_0_rptRoomsDetails_0_rpt']