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 Webdriver:通过html标记查找元素,该标记包含属于某个类的html标记_Java_Selenium_Webdriver - Fatal编程技术网

Java Webdriver:通过html标记查找元素,该标记包含属于某个类的html标记

Java Webdriver:通过html标记查找元素,该标记包含属于某个类的html标记,java,selenium,webdriver,Java,Selenium,Webdriver,要澄清一个非常混乱的标题: 有一段页面代码如下所示(我简化了实际代码): 。。。 对于您发布的HTML。下面的CSS选择器应该可以工作 div.CLASS1 > p:nth-child(2) > strong 如果需要获取包含i.CLASS2的strong标记,则可以执行以下操作 // get all p tags List<WebElement> pTags = driver.findElements(By.cssSelector("div.CLASS1 >

要澄清一个非常混乱的标题: 有一段页面代码如下所示(我简化了实际代码):


。。。



对于您发布的HTML。下面的CSS选择器应该可以工作

div.CLASS1 > p:nth-child(2) > strong
如果需要获取包含
i.CLASS2
strong
标记,则可以执行以下操作

// get all p tags
List<WebElement> pTags = driver.findElements(By.cssSelector("div.CLASS1 > p"));

WebElement myWebElement = null;

// iterate and find p tag that contains i.CLASS2
for (WebElement element : pTags) {
    if (element.findElements(By.cssSelector("i.CLASS2")).size() == 1) {
        myWebElement = element.findElement(By.cssSelector("strong"));
        break;
    }
}

// the data you want
System.out.println(myWebElement.getText());
//获取所有p标记
List ptag=driver.findElements(By.cssSelector(“div.CLASS1>p”);
WebElement myWebElement=null;
//迭代并查找包含i.CLASS2的p标记
for(WebElement:ptag){
if(element.findElements(By.cssSelector(“i.CLASS2”)).size()=1){
myWebElement=element.findElement(By.cssSelector(“strong”);
打破
}
}
//你想要的数据
System.out.println(myWebElement.getText());

用于您发布的HTML。下面的CSS选择器应该可以工作

div.CLASS1 > p:nth-child(2) > strong
如果需要获取包含
i.CLASS2
strong
标记,则可以执行以下操作

// get all p tags
List<WebElement> pTags = driver.findElements(By.cssSelector("div.CLASS1 > p"));

WebElement myWebElement = null;

// iterate and find p tag that contains i.CLASS2
for (WebElement element : pTags) {
    if (element.findElements(By.cssSelector("i.CLASS2")).size() == 1) {
        myWebElement = element.findElement(By.cssSelector("strong"));
        break;
    }
}

// the data you want
System.out.println(myWebElement.getText());
//获取所有p标记
List ptag=driver.findElements(By.cssSelector(“div.CLASS1>p”);
WebElement myWebElement=null;
//迭代并查找包含i.CLASS2的p标记
for(WebElement:ptag){
if(element.findElements(By.cssSelector(“i.CLASS2”)).size()=1){
myWebElement=element.findElement(By.cssSelector(“strong”);
打破
}
}
//你想要的数据
System.out.println(myWebElement.getText());

更新:我刚刚发现了另一个重要细节:包含
标记的段落标记并不总是排在第二位:有时第一个段落块不存在,因此,我正在寻找的
可能是行中的第一个…更新:我刚刚发现了另一个重要细节:包含
标记的段落标记并不总是按顺序排在第二位:有时第一个段落块不存在,因此,我正在寻找的
可能是这一行中的第一个……当找到所需元素时,您应该中断:)我明白了,但感谢您在改进答案方面所做的努力:)当找到所需元素时,您应该中断:)我明白了,但感谢您在改进答案方面所做的努力:)