我目前正在学习页面对象模型(POM),我正在尝试使用@FindBy访问特定的web元素,但我不知道如何正确地将元素的语法写入@FindBy?
我拥有的是:
driver.findElement(By.cssSelector("a[dta-qid='inventory']");因此,我的问题是如何正确地将a[da-qid='inventory']放在@FindBy中?
a[da-qid='inventory']的意思是,它选择每个da-qid值以'inventory'开头的<a>元素。
发布于 2015-07-23 21:04:58
如果假设使用此选择器可以找到多个元素,请尝试以下操作:
@FindBy(css="a[da-qid='inventory']")
List<WebElement> elements;只是别忘了在da-qid='inventory'和dta-qid='inventory'之间做出正确的选择
发布于 2015-07-23 20:42:10
发布于 2015-07-24 01:40:17
您可以使用XPath选择器:
driver.findElement(By.xpath("//a[contains(@da-qid,'inventory')]");或
@FindBy(xpath = "//a[contains(@da-qid,'inventory')]")
WebElement inventoryLink;分别
@FindAll(xpath = "//a[contains(@da-qid,'inventory')]")
List<WebElement> inventoryLinks;理论上,XPath "//a[startsWith(@da-qid,'inventory')]"也存在,但对我来说并不适用于所有WebDrivers。
https://stackoverflow.com/questions/31597226
复制相似问题