! Nicht gesendet. Überprüfen Sie die Optionen
Dies ist der Code, den ich bisher geschrieben habe: < /p>
Code: Select all
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;
public class SendMessage {
private AndroidDriver driver;
private static final String APPIUM_SERVER_URL = "http://127.0.0.1:4723";
@BeforeTest
public void setup() throws MalformedURLException {
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("platformName","Android");
dc.setCapability("appium:automationName","uiautomator2");
dc.setCapability("appium:appium:deviceName","redmi_note_13");
dc.setCapability("appium:platformVersion","13");
dc.setCapability("appium:appPackage","com.google.android.apps.messaging");
dc.setCapability("appium:appActivity","com.google.android.apps.messaging.ui.ConversationListActivity");
dc.setCapability("appium:noReset", true);
driver = new AndroidDriver(new URL(APPIUM_SERVER_URL),dc);
}
@Test
public void sendMessage() {
String[] shortNumbers={"9008"};
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.findElement(By.xpath("//android.widget.Button[@content-desc='Start chat']")).click();
driver.findElement(By.xpath("//android.widget.EditText[@resource-id='ContactSearchField']")).sendKeys(shortNumbers[0]);
driver.findElement(By.xpath("//android.view.View[@resource-id='ContactSuggestionList']/android.view.View")).click();
driver.findElement(By.xpath("//android.widget.EditText[@resource-id='com.google.android.apps.messaging:id/compose_message_text']")).sendKeys("Test");
driver.findElement(By.xpath("//android.view.View[@resource-id='Compose:Draft:Send']/android.widget.Button")).click();
}
@AfterTest
public void close(){
driver.quit();
}
}
< /code>
Ich habe versucht, XPath des nicht gesendeten Textes zu erhalten. Es war so etwas:
/android.view.view..message_list" weibs.view.view.view..message_list" weibs. Ich habe versucht, das [url=viewtopic.php?t=26065]Problem[/url] mit Chatgpt zu lösen. Letztes Mal wurde dieser Code generiert und hat nicht gearbeitet. Überprüfen Sie die Optionen. Text < /p>
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));
// Get the last message bubble in the list
WebElement lastMessage = wait.until(driver ->
driver.findElement(By.xpath("//android.view.View[@resource-id='message_list']/android.view.View[last()]"))
);
// Look for the "failed" indicator inside the last message
List failedIndicator = lastMessage.findElements(By.xpath(".//android.view.View[contains(@content-desc, 'Failed')]"));
if (!failedIndicator.isEmpty()) {
System.out.println("Message failed to send!");
Assert.fail("Short number " + shortNumbers[0] + " failed: 'Failed' indicator appeared.");
} else {
System.out.println("Message sent successfully to short number: " + shortNumbers[0]);
Assert.assertTrue(true);
}