Tob*_*ias 1 java selenium xpath findby selenium-webdriver
是否可以组合/连接两个Bys?
如果我有一个 By
By parentBy = new By.xpath(".//div[@class='parent']")
Run Code Online (Sandbox Code Playgroud)
和另一个 By
By childBy = new By.xpath(".//div[@class='child']")
Run Code Online (Sandbox Code Playgroud)
是否可以将两个Bys连接到具有此xpath的新Bys?
By combinedBy = new By.xpath(".//div[@class='parent']/div[@class='child']")
Run Code Online (Sandbox Code Playgroud)
就像是
By combinedBy1 = parentBy + childBy
By combinedBy2 = parentBy.Concat(childBy)
Run Code Online (Sandbox Code Playgroud)
用例:
我们使用页面对象模型.
现在我有一个表作为一种子页面对象模型.该表应该有一个选择一些数据的方法.由于一些html结构问题(它是第三方),我必须通过检查一个单元格的类和该单元格的文本/内容来xpath一个div(行)的子表.
除了@SiKing 所说的之外,我还建议您查看该ByChained课程(有关 javadoc,请参见此处)。
如何使用它的示例:
driver.findElements(new ByChained(By.id("product-table"), By.className("quantity")));
Run Code Online (Sandbox Code Playgroud)
不确定这是否直接解决了 OP 的问题,但仍然非常有用。
您有两种选择:
你可以这样做:
WebElement parentEl = driver.findElement(By.xpath(""))
WebElement childEl = parentEl.findElement(By.className(""))
Run Code Online (Sandbox Code Playgroud)使用PageFactory @FindBys.请参阅Selenium PageFactory和Selenium API.