selenium - selenium webdriver:未插入输入数据
问题描述
下面是一个Search for
selenium中的文本输入框,我可以先找到元素,输入数据。但在前端我没有看到任何输入的数据
我不确定为什么我的 UI 不显示 webdriver 输入的数据。代码日志中没有错误
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\rahul\\Downloads\\chromedriver_win32_83\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("http://testingapp.workspez.com");
driver.manage().window().maximize();
WebElement username = driver.findElement(By.id("field_email"));
WebElement password = driver.findElement(By.id("field_password"));
WebElement login = driver.findElement(By.xpath("//*[text()='Log In']"));
username.sendKeys(Keys.CONTROL + "a");
username.sendKeys(Keys.DELETE);
password.sendKeys(Keys.CONTROL + "a");
password.sendKeys(Keys.DELETE);
username.sendKeys("rahul@workspez.com");
password.sendKeys("Sujeet@19");
login.click();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
WebElement generalInfo = driver.findElement(By.xpath("//*[text()='General Info']"));
generalInfo.click();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
WebElement Contacts = driver.findElement(By.xpath("//*[text()='Contacts']"));
Contacts.click();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//find search for
WebElement newlyaddedcontact1 = driver.findElement(By.xpath("//*[text()='Search for']"));
JavascriptExecutor executor1 = (JavascriptExecutor) driver;
executor1.executeScript("arguments[0].click();", newlyaddedcontact1);
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].value='searchcontact';", newlyaddedcontact1);
WebElement search = driver.findElement(By.xpath(".//*[@class='MuiButtonBase-root MuiIconButton-root']"));
search.click();
如何访问该网页
1.登录http://testingapp.workspez.com
用户名:rahul@workspez.com 密码:Sujeet@19
单击顶部的一般信息选项卡,然后单击联系人“选项卡”
您将看到搜索框。
解决方案
我的事情你需要改变你的Xpath。因为无论你写什么XPath,这是一个你需要为输入控制编写的标签,所以我更新你的代码。
IWebElement newlyaddedcontact1 = driver.FindElements(By.XPath("//input[contains(@class,'MuiInput-input')]")).ToList()[0];
JavascriptExecutor executor1 = (JavascriptExecutor) driver;
executor1.executeScript("arguments[0].click();", newlyaddedcontact1);
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].value='"+name+"';", newlyaddedcontact1);
请尝试此代码。我用 C# 语言编写。
推荐阅读
- flutter - RenderBox 未布置:RenderUiKitView#ceff7 NEEDS-LAYOUT NEEDS-PAINT
- java - Flyway V 7.8.1 不会迁移它创建 H2 表的第一个脚本
- javascript - 发送获取请求以下载服务器端生成的文件
- c++ - 用 C++ 编写公共变量或范围仅限于函数的变量有什么更好的方法?
- javascript - Javascript:异步函数返回 Promise 对象而不是字符串
- image - 通过 1 个人通过 ffmpeg 我需要组合 2 个音频并向其添加图片(专辑)
- javascript - 如何使用 SASS mixin 组合 CSS 类?
- javascript - 在 line chartjs 中从 lines 数组动态呈现数据集。请提出解决方案
- java - 如何在 Java Swing 中以正确的顺序放置组件
- newrelic - 在 New Relic 中,如何以 PDF 格式下载客户端特定的仪表板