我试图找到一个元素在一个网站,并获得所有的元素。为此,我使用Selenide/Selenium。我正在寻找的元素不能由一个类定位,因此我试图找到一个带有两个类(父类和子类)的元素。只有Selenide,我可以很容易地使用以下方法找到一个元素:
SelenideElement basketIcon = $(By.className("buttons")).$(byClassName("btn-cart"))
这将给我一个肯定的因素。但是我如何找到一个元素数组呢?List<SelenideElement> productName1 = WebDriverRunner.getWebDriver().findElements(By.className(""));,但它不起作用,我也尝试过这样做:List<WebElement> productName = WebDriverRunner.getWebDriver().findElements(By.className("buttons"));,但是在这里,我如何添加另一个类来定位一个元素?$(byClassName("btn-cart"))?或者还有其他方法可以做到这一点?
我也尝试过使用ElementsCollection elements = WebDriverRunner.getWebDriver().findElements(By.className(""));,但它不起作用.
编辑:我有一个名为"DriverFactory“的类,用于打开浏览器:
public static void openBrowser(String browserName, String url) throws Exception {
WebDriverManager.chromedriver().browserVersion(chromeversion).setup();
Configuration.browser = "Chrome";
Configuration.startMaximized = true;
driver.get(url);
}另一个类,其中我定义了定位器:
public class EE_MonitorCategoryElements extends DriverFactory {
protected static List<WebElement> productName = getWebDriver().findElements(By.id("asddsa"));
}还有一门考试课:
@Test
public void ads() throws Exception {
DriverFactory.openBrowser("Chrome", "https://google.ge");
}当我添加最后一个带有" getWebDriver ()“的元素定位器并试图运行测试时,它给了我一个错误:没有绑定测试,而且在删除/注释getWebDriver行的地方,它正在工作
发布于 2021-06-13 14:03:38
只需使用$$("<cssSelector>")获取Selenide中元素的列表(集合)。
发布于 2021-06-03 11:30:21
你必须使用className吗?为什么不是xpath或cssSelector?
就像这样:
List<WebElement> productName = WebDriverRunner.getWebDriver().findElements(By.xpath("//button"));并打印size of productName list,查看是否有所有可用的按钮。
https://stackoverflow.com/questions/67819759
复制相似问题