Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Selenide获取元素列表_Java_Selenium_Intellij Idea_Css Selectors_Selenide - Fatal编程技术网

Java 使用Selenide获取元素列表

Java 使用Selenide获取元素列表,java,selenium,intellij-idea,css-selectors,selenide,Java,Selenium,Intellij Idea,Css Selectors,Selenide,我试图找到一个网站上的元素,并获得所有的元素。为此,我使用硒化物/硒。我要查找的元素不能由一个类来定位,因此我尝试用两个类(父类和子类)来定位元素。仅使用硒化物,我可以使用以下方法轻松定位元素: SelenideElement篮图标=$(按.className(“按钮”)。$(按className(“btn购物车”)) 这肯定会给我一个元素。但是如何定位元素的数组呢? List productName1=WebDriverRunner.getWebDriver().findElements(By

我试图找到一个网站上的元素,并获得所有的元素。为此,我使用硒化物/硒。我要查找的元素不能由一个类来定位,因此我尝试用两个类(父类和子类)来定位元素。仅使用硒化物,我可以使用以下方法轻松定位元素:

SelenideElement篮图标=$(按.className(“按钮”)。$(按className(“btn购物车”))

这肯定会给我一个元素。但是如何定位元素的数组呢?
List productName1=WebDriverRunner.getWebDriver().findElements(By.className(“”)但它不起作用,我也试过这样做:
列表productName=WebDriverRunner.getWebDriver().findElements(按.className(“按钮”)但在这里我如何添加另一个类来定位元素<代码>$(按类别名称(“btn购物车”)
?还是有其他方法可以做到这一点

我还尝试使用
elementscolectionelements=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"));
}

当我用“getWebDriver()”添加最后一个元素定位器并试图运行测试时,它给了我一个错误:没有绑定测试,在我删除/注释getWebDriver行的地方,它正在工作

您必须使用
类名
?为什么不
xpath
cssSelector

大概是这样的:

List<WebElement> productName = WebDriverRunner.getWebDriver().findElements(By.xpath("//button"));
List productName=WebDriverRunner.getWebDriver().findElements(By.xpath(//按钮));

然后打印
productName
列表的
size
,查看是否所有按钮都可用。

只需使用
$$(“”)
即可获得Selenide中元素的列表(集合)。

嗯,有没有办法使用ElementsCollection这样的功能?或者我可以不使用xpath吗?是的,你可以使用ID、linText、NAME、CSS_选择器或xpath,这取决于你。老兄,我现在出去几个小时了。。请在此处或聊天室中分享详细信息。。一旦我回来,我一定会看一看并回复你。感谢您为每个循环获得if block中的确切元素,如下所示:for(WebElement:elements){if(element.getText().contains(“您想要的文本”){System.out.println(element.getText());//在这里做一些事情}}}使用如此长的构造绝对不需要,$$()任您使用。
List<WebElement> productName = WebDriverRunner.getWebDriver().findElements(By.xpath("//button"));