部分ID Xpath查询返回null

时间:2017-05-26 09:45:52

标签: selenium xpath

我有ID=Mscrm.BasicHomeTab.New.NewRecord

的元素

如果我使用以下查询 - 我成功获取元素

FindElement(By.XPath("//*[@id='Mscrm.BasicHomeTab.New.NewRec‌​ord']"))

但如果我尝试通过部分ID获取元素,则无法

FindElement(By.XPath("//*[ends-with(@id,'NewRecord')]"))

第二个查询出了什么问题?

2 个答案:

答案 0 :(得分:1)

Selenium(目前)仅支持XPath 1.0版本,而ends-with()功能来自XPath 2.0

您可以尝试使用contains()代替

FindElement(By.XPath("//*[contains(@id,'NewRecord')]"))

通过部分子字符串

匹配id

FindElement(By.XPath("//*[substring(@id, string-length(@id) - string-length('NewRecord') +1) = 'NewRecord']"))

ends-with()

类似

答案 1 :(得分:1)

您可以申请ends-with CSS selector

By.cssSelector("[id$=NewRecord]")

希望它会对你有所帮助。