我想清除并更改给定URL上的输入值。我使用的js不会执行任何操作,也不会导致任何错误。为什么会发生这种情况,我该如何解决?
@Test public void clearField() throws Exception { String url = "https://sfbay.craigslist.org/search/pen/apa?hasPic=1&search_distance=25&" + "postal=94014&nh=75&nh=80&min_price=1500&max_price=2500&bedrooms=1&bathrooms=1"; //url = "https://sfbay.craigslist.org/search/pen/apa?housing_type=1";//Clear & set value works with this url. browser.get(url); WebElement element = browser.findElement(By.name("search_distance")); String char_sequence = "10"; //Clear the field send_keys_v2(element, ""); //Re write the field send_keys_v2(element, char_sequence); } public void send_keys_v1(WebElement element, String char_sequence) { ((JavascriptExecutor) browser).executeScript("arguments[0].value='" + char_sequence + "';", element); } public void send_keys_v2(WebElement element, String char_sequence) { ((JavascriptExecutor) browser).executeScript("arguments[0].setAttribute=('value', '" + char_sequence + "');", element); }
一个可能且可能的答案是,在尝试清除的元素之前,您还有另一个具有相同名称的元素。
请检查html并检查是否找到多个元素,然后采用第一个。
另外,您可以使用css选择器,例如:
.searchInput[name*=search_distance]