Erro ao usar o selenium

1 resposta
seleniumjava
W

Estou fazendo um codigo para pegar uma data salvar no txt e depois pegar a mesma e compara mas esta dando o seguinte erro:

Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: //*[@id="3"]/div[3]/table/tbody/tr/td (tried for 20 second(s) with 500 MILLISECONDS interval)
at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:82)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:231)
at br.com.b2w.rotinaobi.atualizacao.Atualizacao.pegarAtualizacaoOBI(Atualizacao.java:93)
at br.com.b2w.rotinaobi.atualizacao.Atualizacao.compararAtualizacao(Atualizacao.java:123)
at br.com.b2w.rotinaobi.marca.MKTPLACE.baixar(MKTPLACE.java:33)
at br.com.b2w.Executar.main(Executar.java:26)
Caused by: org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.xpath: //*[@id="3"]/div[3]/table/tbody/tr/td
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:32.194Z'
System info: host: 'BRSPOOSCSW75173', ip: '10.146.21.28', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_151'
Driver info: driver.version: unknown
at org.openqa.selenium.support.ui.ExpectedConditions.lambda$findElement$0(ExpectedConditions.java:882)
at java.util.Optional.orElseThrow(Unknown Source)
at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:881)
at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:43)
at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:205)
at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:201)
at org.openqa.selenium.support.ui.ExpectedConditions$22.apply(ExpectedConditions.java:643)
at org.openqa.selenium.support.ui.ExpectedConditions$22.apply(ExpectedConditions.java:640)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208)
... 4 more

package br.com.b2w.rotinaobi.atualizacao;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import br.com.b2w.rotinaobi.obi.OBI;

public class Atualizacao {
private WebDriver driver;
private WebDriverWait wait;
@SuppressWarnings("unused")
private OBI obi;
private FileWriter arquivo;
private String caminho;
private String atualizacaoOBI;
private String path;
private String url;
private String marca;
public Atualizacao(WebDriver driver, WebDriverWait wait) {
	this.driver = driver;
	this.wait = wait;
	this.obi = new OBI(driver);
}

public void abrirPagina(String url) {
	driver.get(url);
}

public Atualizacao salvarAtualizacao() {
	this.salvarAtualizacaoMKTPLACE();
	this.salvarAtualizacaoMotorola();
	this.salvarAtualizacaoSAC();
	System.out.println("- Foi salvo os arquivos de atualizações");
	return this;
}

public void salvarAtualizacaoMKTPLACE() {
	this.url = "http://obi.b2w/QvAJAXZfc/opendoc.htm?document=SAC%2FPainel%20Chat%20Email%20-%20Por%20Per%C3%ADodo%20-%20MKTPLACE.qvw&host=QVS%40bwdhpr0158";
	this.abrirPagina(this.url);
	this.path = "//*[@id=\"3\"]/div[3]/table/tbody/tr/td";
	this.marca = "MKTPLACE";
	this.salvarNoTXT(this.path, this.marca);
	System.out.println("--- Foi salvo o arquivo de atualização do MKTPLACE");
}

public void salvarAtualizacaoMotorola() {
	this.url = "http://obi.b2w/QvAJAXZfc/opendoc.htm?document=SAC%2FPainel%20Chat%20Email%20-%20Por%20Per%C3%ADodo%20-%20Motorola.qvw&host=QVS%40bwdhpr0158";
	this.abrirPagina(this.url);
	this.path = "//*[@id=\"3\"]/div[3]/table/tbody/tr/td";
	this.marca = "Motorola";
	this.salvarNoTXT(this.path, this.marca);
	System.out.println("--- Foi salvo o arquivo de atualização do Motorola");
}

public void salvarAtualizacaoSAC() {
	this.url = "http://obi.b2w/QvAJAXZfc/opendoc.htm?document=SAC%2FPainel%20Chat%20Email%20-%20Por%20Per%C3%ADodo%20-%20SAC.qvw&host=QVS%40bwdhpr0422";
	this.abrirPagina(this.url);
	this.path = "//*[@id=\"3\"]/div[2]/table/tbody/tr/td";
	this.marca = "B2W";
	this.salvarNoTXT(this.path, this.marca);
	System.out.println("--- Foi salvo o arquivo de atualização do B2W");
}

public void salvarNoTXT(String xpath, String marca) {
	System.out.println("- Começou a ser salvo o arquivo de atualização do "+marca);
	caminho = "C:\\Users\\wesley.costa\\Desktop\\BasesOBI\\Atualizacoes\\"+marca+".txt";
	this.atualizacaoOBI = this.pegarAtualizacaoOBI(xpath);
	try {
		arquivo = new FileWriter(new File(this.caminho));
		arquivo.write(this.atualizacaoOBI);
		arquivo.close();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

public String pegarAtualizacaoOBI(String xpath) {
	WebElement atualizacao = null;
	try {
		Thread.sleep(1000);
		wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath)));
		atualizacao = this.driver.findElement(By.xpath(xpath));
		System.out.println("-- Pegando ultima atualização: "+atualizacao.getText().substring(20, atualizacao.getText().length()));
	} catch (InterruptedException e) {
		System.out.println("Erro para pegar a ultima atualização");
		e.printStackTrace();
	}
	return atualizacao.getText().substring(20, atualizacao.getText().length());
}

public String pegarAtualizacaoTXT() {
	String atualizacaoTXT = null;
	try {
		BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\wesley.costa\\Desktop\\BasesOBI\\Atualizacoes\\MKTPLACE.txt"));
		while (br.ready()) {
			atualizacaoTXT = br.readLine();
		}
		br.close();
	} catch (IOException e) {
		e.printStackTrace();
	}
	System.out.println("-- Retornando atualização do TXT");
	return atualizacaoTXT;
}

public boolean compararAtualizacao(String xpath) {
	System.out.println("- Comparando atualizações");
	System.out.println("-- Pegando atualização do TXT");
	String txt = this.pegarAtualizacaoTXT();
	System.out.println("-- Pegando atualização do OBI");
	String obi = this.pegarAtualizacaoOBI(xpath);
	if(obi != txt)
		return true;
	else
		return false;
}

}

1 Resposta

J

Pelo xpath //*[@id="3"]/div[3]/table/tbody/tr/td o elemento procurado não existe na página.

Criado 23 de fevereiro de 2018
Ultima resposta 23 de fev. de 2018
Respostas 1
Participantes 2