@mihsaklimov

Как использовать AsyncTask вместе с Selenium?

С помощью автоматизации Selenuim мне необходимо найти объект на странице.
Ищу по айди. Выходит исключение
Caused by: org.openqa.selenium.NoSuchElementException: Could not find element with id: search-text

Также сообщение E/NetworkUtilities: [MTK_net]ss.ss_family:2
Я прочел, что нужно превести сеть в другой поток, но я и так использовал AsyncTask.
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MyAsyncTask myAsyncTask = new MyAsyncTask();
        myAsyncTask.execute(this);
    }

    class MyAsyncTask extends AsyncTask<Activity, Integer, Integer> {
        @Override
        protected Integer doInBackground(Activity... strings) {
            WebDriver driver = new AndroidWebDriver(strings[0]);
            driver.get("https://rutracker.appspot.com/forum/index.php");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            WebElement element = driver.findElement(By.id("search-text"));
            element.sendKeys("гладиолус");
            element.submit();
                return null;
        }
    }
}
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
TheKnight
@TheKnight
Программист
Но это не отменяет того, что Вы начали переводить тему. Задача сообщества - постараться помочь мне, а не упрекать и задавать вопросы, которые не относятся к теме.

mihsaklimov, нет такой задачи у сообщества. Есть задача удовлетворить свое любопытство и почесать свое ЧСВ.
Если вы думаете по другому - то стоит проверить свои взгляды на реальность.

Что же касается вашей проблемы - кажется, вы банально ошиблись с id элемента. Я наблюдаю id "search-text-guest". Кроме того, стоит подумать о более вменяемом способе ожидания, чем ручками через Thread.sleep каждый раз.

И все же продолжим чесать ЧСВ - использовать selenium изнутри приложения для поиска чего то на стороннем сайте плохая идея. Почему бы не воспользоваться существующим API? Если его не существует - почему бы его не запилить? Какую задачу вы вообще пытаетесь решить, что потребовался такой изврат?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы