如何在selenium中打印这个ajax文本?

时间:2017-04-21 22:48:55

标签: selenium xpath selenium-webdriver

我正在尝试自动化Snapdeal网站。

遵循的步骤:

  1. SnapdealHome->Hover Computer&Gaming->Storage->Select 1TB和16gb。

  2. 然后我想打印容量过滤器所包含的内容。

  3. 我试过这个xpath,但它没有显示任何内容。

  4. 这是ajax代码吗?

  5. 我想打印capacity.getText()包含的内容。

  6. 这些是我尝试的xpath$x("//div[@class='navFiltersPill'][contains(text(),'Capacity:')]")$x("//div[@class='navFiltersPill']")

  7. 输出应为:1TB和16GB。有可能吗?

  8. Check the below attached figure

2 个答案:

答案 0 :(得分:0)

请尝试使用低于xpath的findElements,然后逐个循环所有匹配的元素来检索文本。这将明确列出容量过滤器部分下的所有过滤条件。根据您的要求更改xpath中的以下数据名称值。

//div[@data-name='Capacity_s'][contains(@class,'filter-inner filter-inner-height')]/div[contains(@class,'active-filter')]/label/a

示例代码:[确保在点击此行之前添加等待]

List<WebElement> ele=d.findElements(By.xpath("//div[@data-name='Capacity_s'][contains(@class,'filter-inner filter-inner-height')]/div[contains(@class,'active-filter')]/label/a"));
    for (WebElement e:ele){
        System.out.println(e.getText());
    }

答案 1 :(得分:0)

您必须遍历所有已检查的INPUT并打印其function GetData() { $('.item_code').click(function(){ alert($(this).closest('tr').find('.item_code')); }); } 。例如,

value

将打印

for (WebElement e : driver.findElements(By.cssSelector("input[checked]")))
{
    System.out.println(e.getAttribute("value"));
}

1%20TB 16GB 是一个空格。