如何从占位符文本中获取输入元素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将值分配给属性,则无法手动输入文本。

最新更新