Код не компилируется на другом ПК Selenium

1

У меня есть сценарий автоматизации, который отлично работает. Но когда я скопировал сценарий своим коллегам, следующая строка кода не компилируется и дает следующую ошибку.

wait.until(ExpectedConditions.textToBePresentInElement(oq.findElement("_ctl0_ContentPlaceHolder1_industryQB_selectedIndustryLabel"), "F461300 Computer Wholesaling"));

Ошибка ниже

Error:(231, 13) java: no suitable method found for until(org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.WebElement>)
method org.openqa.selenium.support.ui.FluentWait.until(com.google.common.base.Predicate<org.openqa.selenium.WebDriver>) is not applicable
  (argument mismatch; org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.WebElement> cannot be converted to com.google.common.base.Predicate<org.openqa.selenium.WebDriver>)
method org.openqa.selenium.support.ui.FluentWait.<V>until(com.google.common.base.Function<? super org.openqa.selenium.WebDriver,V>) is not applicable
  (cannot infer type-variable(s) V
    (argument mismatch; org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.WebElement> cannot be converted to com.google.common.base.Function<? super org.openqa.selenium.WebDriver,V>))

Вот шаги, которые я сделал. установленную IDE (intellj Idea), добавили jdk в проект, добавили в проект selenium jar. Скопированы и вставлены файлы Java.

Я даже попробовал просто копировать весь проект, и каждый метод был разрешен, за исключением этого.

Скрипт по-прежнему отлично работает на моей машине. Но не на новой машине.

Не стесняйтесь задавать мне какие-либо вопросы, если это не ясно.

Теперь я не в курсе.

  • 1
    Какую версию selenium вы используете?
  • 0
    сначала я скачал новую версию Selenium на сайте, которая была 2.45.0, и я заметил, что я использую 2.44, поэтому я просто скопировал селен, который был на моем компьютере, на новый компьютер. Сначала я подумал, что проблема может быть связана с библиотекой. Но я так не думаю.
Показать ещё 3 комментария
Теги:
selenium
selenium-webdriver

1 ответ

2
Лучший ответ

Согласно документации textToBePresentInElement. Вероятно, вы используете более старую версию, где она не устарела, а ваш сотрудник использует последнюю версию Selenium

textToBePresentInElementLocated(By, String) используйте textToBePresentInElementLocated(By, String)

Редактировать И, я не уверен, как

wait.until(ExpectedConditions.textToBePresentInElement(oq.findElement("_ctl0_ContentPlaceHolder1_industryQB_selectedIndustryLabel"), "F461300 Computer Wholesaling"));

будет компилироваться. параметры

ExpectedConditions.textToBePresentInElement(By , String)

ожидается By, String. Вы пытаетесь передать WebElement вместо By селектору. Кроме того, findElement() не принимает String, но какой - то By селектору, кажется мне неправильным, а также.

Правильная реализация: public static ExpectedCondition<java.lang.Boolean> textToBePresentInElement(By locator, java.lang.String text)

  • 0
    Прости за это. Я забыл добавить, что oq - это класс, который я создал.
  • 0
    oq.findelement является следующим методом public WebElement findElement(String webElementId) { return driver.findElement(By.id(webElementId)); }
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню