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;
}
}