下面是相同的代码
<section id=“zone_body” class =“zone zone_body>
<div class =“row”>…<div>
<div data-o_id="4915279" data-renderertype="imagesonly" class="module module-carousel module-carousel--imagesonly col col--1-1" id="module-2319657">
::after
</div>
<div class =“row”>…<div>
<div class =“row”>…<div>
<div class =“row”>…<div>
<div class =“row”>…<div>
<div class =“row”>…<div>
<div class =“row”>…<div>
<div class =“row”>…<div>
</section>
我正在测试一个网页,试图通过Java使用Selenium来实现自动化。根据我正在测试的每个页面上方的html代码,都具有该标准的16种不同类型的data-renderertype,并且根据体内的8种不同的div类之上的代码,它们可以具有相同或不同的data-renderertype,例如上面有“ imagesonly”,并且可以任意顺序排列。我真正想要实现的是从所有8个不同的div类中提取所有的data-renderertype值(这不是一个常数,因为它可能因页面而异),因此可以将其存储并用于将其与网站的其他版本。我希望这是有道理的,任何帮助将不胜感激,因为我现在不知所措,又不确定从哪里开始。
答案 0 :(得分:0)
您可以这样做逻辑,
List<IWebElement> elements= driver.findElements(By.XPath("*//div[data-renderertype]"));
或
List<IWebElement> elements= driver.findElements(By.XPath("*[data-renderertype]"));
或
List<IWebElement> elements = driver.findElements(By.XPath("*//div[starts-with(@id,'module')]"));
forEach(IWebElement ein elements){
string str = e.getAttribute("data-renderertype");
}
答案 1 :(得分:0)
尝试一下:
List<WebElement> allRows = driver.findElements(By.cssSelector("#zone_body > div.row"));
for( WebElement elem : allRows ){
System.out.println("Value=== " + elem.getAttribute("data-renderertype"));
}
答案 2 :(得分:0)
我要做的是:
Thrust;Thrust;BBC Micro;;;;;;;;;;;;;;
Alien Breed Special Edition '92;Alien Breed Special Edition '92;Amiga;;1992;Team 17;Action / Shooter;;;;;;;;;;
amidar;amidar;Arcade-Vertical;;;;;;;;;;;;;;
mspacman;mspacman;Arcade-Vertical;;;;;;;;;;;;;;
获取项目(请注意,为确保Selenium脚本的稳定性和可维护性,需要仔细选择XPath)List<WebElement> divs = driver.findElements(By.xpath("#zone_body .row"))
,填充新列表或地图或所需的任何数据类型。答案 3 :(得分:0)
List<WebElement> elements = driver.findElements(by.xpath("//section[@id='zone_body']//div[@class='row']"));
for(int i=0;i<elements.size();i++) {
System.out.println( elements.get(i).getAttribute("data-renderertype"));
}
此代码段将<div class='row'/>
标记下的所有<section id='zone_body' />
元素放入元素列表,并使用for循环迭代该列表以获取属性data-renderertype的值。