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"));