如何使用selenium JavascriptExecutor将文本发送到ID未知的隐藏文本字段

时间:2017-07-18 20:27:20

标签: javascript selenium selenium-webdriver

我正在处理一个搜索输入框图标,单击该图标可打开输入框。由于图标是隐藏的,我使用JavaScriptExecutor点击它并打开搜索输入,如

WebElement searchBtn = driver.findElement(By.className("search-toggle"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript ("arguments[0].click();" , searchBtn);

但是现在,我需要在输入中输入一些文本,然后输入以提交它。解决方案是再次使用 JavascriptExecutor ,例如

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.getElementById(**'gbqfq'**).value = 'search text';");

这一次,elementId' gbqfq'不知道,对吧?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果你没有id,那么使用另一个选择器如By.Class或By.Xpath来查找selenium中的元素,并使用SendKeys使用public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new AuthorizeAttribute()); } } 来设置文本或等效的JavaScript方法找到元素并使用value属性来设置文本。