1
resposta

Executando teste LanceE2ETest

Olá,

Executando as três opções de testes:

  1. No htmlunit, os 3 passaram
  2. No chrome os 3 passaram
  3. No firefox, o teste naoDeveAceitarDoisLancesComOMesmoValor() falhou...

Porque funciona em um mas não funciona em outro ?

Segue o log de erro:

org.openqa.selenium.StaleElementReferenceException: The element reference of <input id="valor" class="form-control valid" name="valor" type="text"> is stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/stale_element_reference.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'NOTE7472-IFS', ip: '172.19.80.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.5'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 94.0.1, javascriptEnabled: true, moz:accessibilityChecks: false, moz:buildID: 20211103134640, moz:geckodriverVersion: 0.30.0, moz:headless: false, moz:processID: 17856, moz:profile: C:\Users\ivanf\AppData\Loca..., moz:shutdownTimeout: 60000, moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, platformVersion: 10.0, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
Session ID: 50bd2dc5-b1e8-45e0-a84c-606a9c13ba4e
1 resposta

Olá Ivan,

O erro que você está enfrentando é um erro comum ao utilizar o Selenium WebDriver. A exceção StaleElementReferenceException ocorre quando o elemento que você está tentando acessar não está mais disponível na página. Isso pode acontecer por vários motivos, como o elemento ter sido removido da página ou a página ter sido atualizada.

No seu caso, o teste naoDeveAceitarDoisLancesComOMesmoValor() falhou no Firefox, mas passou no Chrome e no HtmlUnit. Isso pode acontecer porque cada navegador tem uma forma diferente de renderizar a página e executar o JavaScript. Além disso, o HtmlUnit é um navegador headless, ou seja, não tem interface gráfica, o que pode afetar o comportamento do teste.

Para resolver o erro, você pode tentar adicionar um tempo de espera antes de acessar o elemento novamente ou atualizar a página antes de acessar o elemento. Outra opção é verificar se o elemento ainda está disponível antes de tentar acessá-lo.

Espero ter ajudado e bons estudos!