如何通过Selenium和Java查找以特定文本开头并以特定文本结尾的类名
下面是元素,我需要找到与第一个css匹配的类名——以widget结尾,如何在selenium java中找到它 尝试使用以下代码,但不起作用如何通过Selenium和Java查找以特定文本开头并以特定文本结尾的类名,java,selenium,xpath,css-selectors,xpath-1.0,Java,Selenium,Xpath,Css Selectors,Xpath 1.0,下面是元素,我需要找到与第一个css匹配的类名——以widget结尾,如何在selenium java中找到它 尝试使用以下代码,但不起作用 List<WebElement> list1 = driver.findElements(By.xpath("//body[starts-with(@class, 'css-')]")); List<WebElement> list2 = driver.findElements(By.xpath("//body[contains(@
List<WebElement> list1 = driver.findElements(By.xpath("//body[starts-with(@class, 'css-')]"));
List<WebElement> list2 = driver.findElements(By.xpath("//body[contains(@class, 'css-')]"));
List<WebElement> list3 = driver.findElements(By.xpath("//body[ends-with(@class, 'widget')]"));
我使用CSS选择器查找任何类型的元素: driver.findElementsBy.CssSelector[class^='css-'][class$='widget'] 其中,我们可以找到任何元素,该元素的class属性使用[],以^=开头,以$=结尾 要查找div,请执行以下操作:
driver.findElementsBy.CssSelectordiv[class^='css-'][class$='widget']@elworth的答案是关于您可以使用的CssSelector的正确方向,根据您的代码试用,以下应该可以工作:
List<WebElement> list3 = driver.findElements(By.CssSelector("//body[class^='css-'][class$='widget']"));
它不起作用意味着什么?发布您的错误消息或解释它如何没有达到您想要的。是否有一个实际的主体HTML标记来保存这些部分类名,还是其他HTML标记?如果要查找任何标记,请将*替换为BODY,例如//*[开始]-with@class,“css-”]。
List<WebElement> list1 = driver.findElements(By.xpath("//body[starts-with(@class, 'css-') and contains(@class, 'widget')]"));