2 回答

TA貢獻1783條經驗 獲得超4個贊
您應該再次找到該元素...以確保輸入了文本。
嘗試這樣的事情:
WebElement data=driver.findElement(By.xpath("//input[@class='form-control input-sm']"));
data.sendKeys("abc" , Keys.ENTER);
WebElement updatedData=driver.findElement(By.xpath("//input[@class='form-control input-sm']"));
String result =updatedData.getText();
System.out.println(result);
希望這對你有幫助!

TA貢獻1828條經驗 獲得超13個贊
在您的網站中,它不是傳統的選擇下拉菜單,開發人員使用了 Ul 和 li 標簽。我們必須使用 xpath 或 css-selector 定位器來識別它。"//span[@id='select2-signup-username-container']" :在這個 xpath 中,我通過識別帶有 span 標簽且 id 為 "select2-signup-username-container" 的元素來單擊下拉列表 // ul[@id='select2-signup-username-results']//li[text()='User Name'] :點擊后,我們將看到 ul 標簽顯示,子 li 的文本為“用戶名”。點擊它將在下拉列表中選擇用戶名。您的網站加載緩慢,所以我使用了 Thread.sleep 如果需要,您可以使用 Actions 類或 webdriver wait。
package com.java.stackoverflow;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import com.driver.utils.DriverFactory;
public class Test {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = DriverFactory.getdriverfor("chrome");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.get("https://ecabportal.azurewebsites.net/login");
driver.findElement(By.xpath("//input[@name='email']")).sendKeys("[email protected]");
driver.findElement(By.name("password")).sendKeys("NsSaNj@0205");
driver.findElement(By.xpath("//span[text()='SignIn']")).click();
driver.findElement(By.xpath("//span[text()='User Management ']")).click();
Thread.sleep(1000);
WebElement dropdown_ck = driver.findElement(By.xpath("//span[@id='select2-signup-username-container']"));
dropdown_ck.click();
driver.findElement(By.xpath("//ul[@id='select2-signup-username-results']//li[text()='User Name']")).click();
}
}
添加回答
舉報