C# 如何从占位符文本中获取输入元素id?

C# 如何从占位符文本中获取输入元素id?,c#,selenium,C#,Selenium,我用的是硒和碳 我试图通过已经键入的文本(每个实例的元素id都是随机生成的)为输入字段找到一个元素id,然后键入一个新文本 我失败的尝试: public void SetValues(){ var textField = driver.FindElement(By.XPath("//input[contains(text(),'my_text')]")); ((IJavaScriptExecutor)driver) .E

我用的是硒和碳

我试图通过已经键入的文本(每个实例的元素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将值分配给属性,则无法获取手动输入的文本。

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

var textField = driver.FindElement(By.XPath("//input[@placeholder='my_placeholder']"));
编辑:
如果javascript将值分配给属性,则无法获取手动输入的文本。

我最初认为是占位符的内容实际上是已填充的文本字段。我已经更新了帖子。有没有类似的方法来查找包含文本“my_text”的文本字段?简单但有效answer@asasasasas如果在输入中键入文本,则如果在输入之后有javascript操作来指定此值,则在HTML代码中不可见。因此,不可能通过手动向输入中添加文本来获取元素。您可以检查文本的HTML代码,如果您在那里找到它,那么应该有办法找到它。@asasasas更新了答案,请检查它。如果你的情况不同,你可以问另一个问题或编辑问题。我最初认为占位符实际上是一个已经填充的文本字段。我已经更新了帖子。有没有类似的方法来查找包含文本“my_text”的文本字段?简单但有效answer@asasasasas如果在输入中键入文本,则如果在输入之后有javascript操作来指定此值,则在HTML代码中不可见。因此,不可能通过手动向输入中添加文本来获取元素。您可以检查文本的HTML代码,如果您在那里找到它,那么应该有办法找到它。@asasasas更新了答案,请检查它。如果您的案例不同,您可以询问其他问题或编辑问题。