Как обрабатывать несколько индексов в числовом порядке - PullRequest
0 голосов
/ 24 февраля 2019

Я создаю бота для Instagram, который будет автоматически отправлять сообщения моим подписчикам.Я хочу, чтобы это всем сообщалось, но я не уверен, как это сделать.

Вот мой код

@Test
public void SimpleTest() throws InterruptedException { //

driver.findElement(By.id("com.instagram.android:id/log_in_button")).click();


By path = By.xpath("//*[@text='Phone number, email or username']");
driver.findElement(path).sendKeys("draco_boys");
Thread.sleep(5000);

driver.findElement(By.id("com.instagram.android:id/password")).sendKeys("xxxxxxxx"); Thread.sleep(5000);

driver.findElement(By.id("com.instagram.android:id/next_button")).click();
Thread.sleep(5000);

By path2 = By.xpath("//android.widget.FrameLayout/android.widget.LinearLayout/android.widget.ImageView[@index='3']"); 
Thread.sleep(7000);
driver.findElement(path2).click(); 
Thread.sleep(5000);

By path3 = By.xpath("//android.widget.LinearLayout[@index='1']"); //first person in my messages
driver.findElement(path3).click(); 

By path4 = By.xpath("//*[@text='Message…']");
driver.findElement(path4).sendKeys("Hello");

driver.findElement(By.id("com.instagram.android:id/row_thread_composer_button_send")).click();

driver.findElement(By.id("com.instagram.android:id/action_bar_button_back")).click();
}


}

После того, как в моих сообщениях появилось сообщение с первым человеком, я хочу, чтобы он вернулся и сделал то же самое для второго человека, для третьего лица и так далее.Кто-нибудь знает, какую команду я мог бы использовать?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Вы можете найти всех своих подписчиков в списке веб-элементов следующим образом

List list1=d.findElements(By.xpath("//android.widget.LinearLayout[@index]")); // это даст вам список ваших подписчиков.

Теперь вы можете повторять его вот так

List list1=d.findElements(By.xpath("//android.widget.LinearLayout[@index]"));
    for(WebElment list1:ele){

    driver.findElement(ele).click(); 
    By path4 = By.xpath("//*[@text='Message…']");
    driver.findElement(path4).sendKeys("Hello");
    driver.navigate().back()

    }

Надеюсь, это поможет вам!

0 голосов
/ 24 февраля 2019

Вы можете использовать driver.findElements (By), чтобы получить список всех элементов и просмотреть их.Вам просто нужно адаптировать свой xpath таким образом, чтобы он выбирал всех людей, а не только одного.В цикле вы отправляете сообщение и возвращаетесь.

...