首页 > 解决方案 > 如何从占位符文本中获取输入元素 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");
              }

我怎样才能让我的代码工作?

标签: c#selenium

解决方案


占位符是一个 html 属性,因此您可以使用@placeholder,检查以下行:

var textField = driver.FindElement(By.XPath("//input[@placeholder='my_placeholder']"));

已编辑:如果 javascript 将值分配给属性,则无法获取手动输入的文本。


推荐阅读