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("admin@malbork.in");
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();
}
}
添加回答
举报