如果Selenium認爲這些值在瀏覽器中不可見,它將不會打印這些值。爲了讓您打印所有方面及其值,您可能需要在打印各個元素之前滾動到每個元素。
我能夠使用easytest框架(https://github.com/codezombies/easytest)和下面的代碼進行描述。
public class TopShopTest {
@Test
public void test() throws Exception {
final EasyTestOptions options = new EasyTestOptions();
options.setLogger(new NoOpLogger());
try (EasyTest easy = new EasyTest(DriverType.CHROME, options)) {
easy.start("http://www.topshop.com/en/tsuk/category/clothing-427/jackets-coats-2390889/N-86tZdgl?No=0&Nrpp=20&siteId=%2F12556");
easy.newPage(page -> {
this.openAndPrintValues(page, ".filter_group.ce3_sleeve_type");
this.openAndPrintValues(page, ".filter_group.colour");
this.openAndPrintValues(page, ".filter_group.size");
this.openAndPrintValues(page, ".filter_group.prod_fit");
this.openAndPrintValues(page, ".filter_group.ce3_jacket_style");
this.openAndPrintValues(page, ".filter_group.ce3_fabric");
this.openAndPrintValues(page, ".filter_group.ce3_collection");
this.openAndPrintValues(page, ".filter_group.ce3_clothing_brands");
this.openAndPrintValues(page, ".filter_group.accessories");
});
}
}
private void openAndPrintValues(final ActionablePage page, final String selector) {
// open
page.scrollTo(selector);
page.click(selector);
page.executeIn(selector + ":not(.collapsed)", container -> {
// get facet heading
final WebElement heading = container.getRaw(".filter_group_label span.lbl");
page.scrollTo(heading);
System.out.println("Choices under selector: " + heading.getText());
// get facet lists
container.executeIn("ul", list -> {
list.wait((Predicate<WebDriver>) t -> list.getRawList("li.refinement:not(.disabled) span.lbl").size() > 0);;
final List<WebElement> elements = list.getRawList("li.refinement:not(.disabled) span.lbl");
// scroll to end of list, selenium will not display 'unseeen' elements
page.scrollTo(elements.get(elements.size() - 1));
// pring heading and list
elements.stream().map(WebElement::getText).filter(StringUtils::isNotEmpty).forEach(System.out::println);
System.out.println(); //extra space
});
});
}
}
下面是對代碼的輸出。
Choices under selector: Sleeve Length
3/4 Sleeve
Long Sleeve
Sleeveless
Choices under selector: Colour
Purple
Red
White
Choices under selector: Size
10
12
14
16
XS
S
S/M
M
M/L
L
XL
Choices under selector: Fit
Regular
Petite
Tall
Maternity
Choices under selector: Jacket & Coat Style
Faux Fur Coats
Gilets
Kimono
Parkas
Shacket
Shearling Coats
Sleeveless Jackets
Smart Coats
Smart Jackets
Trench Coats & Macs
Wool Coats
Choices under selector: Fabric
Cord
Denim
Embroidered
Faux Fur
Faux Leather
Lace
Leather
Sequin
Suede
Velvet
Choices under selector: Collection
Boutique
Festival
Going Out
Sportswear
Unique
Workwear
Choices under selector: Clothing Brands
Adidas Originals
Glamorous
Glamorous Petites
Goldie
Choices under selector: Accessories
One Size
您建議的代碼給了我9個空值而不是我正在尋找的輸出。 –