Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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
如何通过Selenium和Java查找以特定文本开头并以特定文本结尾的类名_Java_Selenium_Xpath_Css Selectors_Xpath 1.0 - Fatal编程技术网

如何通过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(@

下面是元素,我需要找到与第一个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(@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')]"));