ClassCastException при обновлении до Selenium 3.4
Мы используем QAF для автоматизации функциональных испытаний. Недавно мы обновили версию Селена с 3.3.1 до 3.4.0, и она начала выдавать следующую ошибку в некоторых местах.
Caused by: java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebElement cannot be cast to com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebElement
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElementByCssSelector(QAFExtendedWebDriver.java:366)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElementByCssSelector(QAFExtendedWebDriver.java:1)
at org.openqa.selenium.By$ByCssSelector.findElement(By.java:430)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:402)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:169)
at com.qmetry.qaf.automation.ui.webdriver.QAFExtendedWebDriver.findElement(QAFExtendedWebDriver.java:1)
at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:895)
at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:41)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:181)
at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:178)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:238)
По моим наблюдениям, он работает нормально, если у нас нет оператора driver.findBy(BY). в целях тестирования в одном месте я попробовал driver.findBy(String) вместо driver.findBy(BY), и он работал нормально. Но я не знаю, сколько мест команда использовала вышеописанным методом.
Ниже приведен тест, который воспроизводит ошибку:
@Test
public void test1() {
get("/");
QAFExtendedWebDriver driver = getDriver();
driver.findElement(By.name("q")).sendKeys("do something");
}
Из-за этой проблемы мы должны вернуться к селеновой версии 3.3.1. Кто-нибудь может помочь?
1 ответ
Это из-за изменения видимости метода в одном из классов селена. Это может быть решено с помощью fix-4279 в следующей версии.
Это решается с помощью qaf-2.1.12-RC2