不,就您的问题而言,您自己的答案并不是最好的答案。
假设您有这样的HTML:
<div >LEAD DELIVERY MADE HARD</div><div >LEAD DELIVERY MADE EASY</div>
driver.FindElement(By.ClassName("bighead"))会找到两个,然后返回您的第一个
div,而不是您想要的一个。您真正想要的是
driver.FindElement(By.ClassName("bigheadcrb")),但是就像您在问题中说的那样,这将不起作用,因为您需要另一种通过复合类名称查找元素的方法。
这就是为什么大多数人使用功能更强大
By.CssSelector或
By.XPath。然后您有:
CssSelector(最好的):
driver.FindElement(By.CssSelector(".bighead.crb")); // flexible, match "bighead small crb", "bighead crb", "crb bighead", etc.driver.FindElement(By.CssSelector("[class*='bighead crb']")); // order matters, match class contains "bighead crb"driver.FindElement(By.CssSelector("[]")); // match "bighead crb" strictly
XPath(更好):
driver.FindElement(By.XPath(".//*[contains(@class, 'bighead') and contains(@class, 'crb')]")); // flexible, match "bighead small crb", "bighead crb", "crb bighead", etc.driver.FindElement(By.XPath(".//*[contains(@class, 'bighead crb')]")); // order matters, match class contains string "bighead crb" onlydriver.FindElement(By.XPath(".//*[@]")); // match class with string "bighead crb" strictly
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)