部分ID Xpath查询返回null

问题描述:

我有ID=Mscrm.BasicHomeTab.New.NewRecord部分ID Xpath查询返回null

元素,如果我用下面的查询 - 我顺利拿到了元素

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

但如果我尝试通过局部ID来获得元素失败

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

什么是错的第二个查询?

您可以将一个ends-with CSS selector

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

希望它能帮助你。

+0

是的,CSS选择器正在工作。但我不想在一个测试中混合使用css和xpath方法 – algot

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

你可以尝试使用而不是作为

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

由部分子

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

类似于匹配idends-with()

+0

@algot,是否有任何理由取消答案?你想让我改进我的解决方案吗? – Andersson