c# - 如何将文本插入文本框 selenium c#

标签 c# selenium selenium-webdriver

    <div class="input-container">

                <div class="form-group">
                    <div class="labelContainer">
                        <<p>Current Password<span>*</span></p>
                    </div>
                    <label for="currentPassword" class="sr-only">Current Password</label>
                    <input type="password" id="currentPassword" name="currentPassword" class="form-control" placeholder="Current Password" required="">
                    <i class="fa fa-lock icon-style" aria-hidden="true"></i>
                </div>

                <div class="form-group">
                    <div class="labelContainer">
                        <<p>Enter New Password<span>*</span></p>
                    </div>
                    <label for="newPassword" class="sr-only">New Password</label>
                    <input type="password" id="newPassword" name="newPassword" class="form-control" placeholder="New Password" required="">
                    <i class="fa fa-lock icon-style" aria-hidden="true"></i>
                </div>

                <div class="form-group">
                    <div class="labelContainer">
                        <<p>Confirm New Password<span>*</span></p>
                    </div>
                    <label for="confirmPassword" class="sr-only">Confirm New Password</label>
                    <input type="password" id="confirmPassowrd" name="confirmPassowrd" class="form-control" placeholder="Confirm Password" required="">
                    <i class="fa fa-lock icon-style" aria-hidden="true"></i>
                </div>

以上是 html 代码,我想将当前密码插入当前密码文本字段。我尝试了下面的两种方法,但它说元素不可见是行不通的。

(code 1 )driver.FindElement(By.Id("currentPassword")).SendKeys("testabc");
(code 2 )IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
jse.ExecuteScript("document.getElementById('currentPassword').value='testabc';");

尝试测试 newPassword 文本字段而不是 currentPassword 文本字段,它工作正常。只有 currentPassword 和 confirmPassword 文本字段的错误消息元素不可见。

有谁知道是什么问题吗?

最佳答案

你可以试试这个,

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("currentPassword"))).SendKeys("testabc");

关于c# - 如何将文本插入文本框 selenium c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853077/

相关文章:

c# - COM 是如何工作的?

c# - 使用 MVC 和 Razor 在 div 中放置一个 css 类

c# - C#中的省略号?

django - Selenium 与老式的基于 POST/GET 的测试

java.io.IOException : The filename, 目录名或卷标语法不正确

c# - 计算以接缝结束的 2 个网格之间的法线

java - Firefox 上的 Selenium Webdriver clickAndHold() 错误

ajax - Selenium WebDriver-确定元素是否可单击(即,不会被dojo模态灯箱遮盖)

javascript - 以 Selenium WD 作为 promise 从标签文本获取输入

javascript - 在 selenium webdriver 中渲染一系列响应