c# - 如何从占位符文本中获取输入元素 ID?
问题描述
我正在使用 Selenium 和 C#。
我正在尝试通过已经输入的文本来查找输入字段的元素 ID(元素 ID 是为每个实例随机自动生成的),然后输入一个新文本。
我失败的尝试:
public void SetValues(){
var textField = driver.FindElement(By.XPath("//input[contains(text(),'my_text')]"));
((IJavaScriptExecutor)driver)
.ExecuteScript("window.scroll(" + textField.Location.X + "," + (textField.Location.Y - 200) + ");");
textField.sendKeys("some_text");
}
我怎样才能让我的代码工作?
解决方案
占位符是一个 html 属性,因此您可以使用@placeholder
,检查以下行:
var textField = driver.FindElement(By.XPath("//input[@placeholder='my_placeholder']"));
已编辑:如果 javascript 将值分配给属性,则无法获取手动输入的文本。
推荐阅读
- wordpress - 检查 Url 是否包含特殊字符,如 #
- javascript - 如何使输入字段进度条全宽为父 div 的 100%?
- flutter - 如何在flutter_driver自动化测试中定义应用流程?
- c# - iPhone 无法识别下载的 JPEG 文件
- maven - Jenkins maven 相关错误
- javascript - HTML5 输入类型颜色读取单个 RGB 值
- git - 是否可以在 Azure Devops 中更改克隆管道的 repo 路径(元数据)?
- ruby-on-rails - 我们如何获得传入 https 安全标头的自定义标头属性
- docker - Apache 重定向到 Docker 端口
- java - 应用程序更新后未显示 EULA 对话框