C# 如何从占位符文本中获取输入元素id?
我用的是硒和碳 我试图通过已经键入的文本(每个实例的元素id都是随机生成的)为输入字段找到一个元素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
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更新了答案,请检查它。如果您的案例不同,您可以询问其他问题或编辑问题。