考虑以下示例,其中已知一个
- 元素的id,并且我们希望在等于某个文本时单击其包含的
- 元素。下面是两种解决此问题的方法:
方法1: 使用XPath
ReadOnlyCollection<IWebElement> lis = FindElements(By.XPath("//ul[@id='id goes here']/li")); foreach (IWebElement li in lis) { if (li.Text == text) { li.Click(); break; } }
方法2: 使用ID和TagName
IWebElement ul = FindElement(By.Id("id goes here")); ReadOnlyCollection<IWebElement> lis = ul.FindElements(By.TagName("li")); foreach (IWebElement li in lis) { if (li.Text == text) { li.Click(); break; } }
我的问题是:什么时候应该使用XPath,什么时候不应该使用?
我更喜欢只在必要时使用XPath。对于这个特定的例子,我认为XPath完全不必要,但当我在StackOverflow上查找这个特定的问题时,似乎大多数用户都默认使用XPath。