我从一个网站中提取了一些细节,它显示在硒的控制台中。它包含一些我不需要的额外内容。是删除这些东西可以手动完成还是我缺少一些概念??
这是代码的一部分: 公共类硒{
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
int i=1;
System.setProperty("webdriver.gecko.driver", "F:\\Downloads\\Downloads\\geckodriver-v0.21.0-win64\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://www.amazon.in/");
WebElement text=driver.findElement(By.id("twotabsearchtextbox"));
text.sendKeys("Samsung Phones");
text.submit();
Thread.sleep(5000);
while(i==1)
{
//List<WebElement> links=driver.findElements(By.cssSelector(".a-size-base.s-inline.s-access-title.a-text-normal"));
List<WebElement>links=driver.findElements(By.partialLinkText("Samsung"));
System.out.println(links.size());
for(WebElement link : links)
{
//if(link.getText().contains("Samsung"))
System.out.println(link.getText());
问题:
答案 0 :(得分:0)
问题1:这是无法避免的。但是您可以尝试使用以下xpath
//ul/li[contains(@class,'s-result-item')]//a/h2[not(contains(.,'cover'))]
问题2 :xpath仅解决了上面给出的结果项。更改代码中的以下行。
List<WebElement>links=driver.findElements(By.partialLinkText("Samsung"));
使用
List<WebElement>links=driver.findElements(By.xpath("//ul/li[contains(@class,'s-result-item')]//a/h2[not(contains(.,'cover'))]
"));
答案 1 :(得分:0)
这将为您提供元素的确切数量(无盖):
//a//h2[not(contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'cover'))]
它将忽略所有封面元素(不区分大小写)
在driver.findElements()中使用此选择器,您就完成了。