Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能用javascript清除输入字段吗?_Javascript_Java_Selenium - Fatal编程技术网

为什么可以';我不能用javascript清除输入字段吗?

为什么可以';我不能用javascript清除输入字段吗?,javascript,java,selenium,Javascript,Java,Selenium,我想清除并更改给定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&n

我想清除并更改给定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);
}
参考资料:


尝试在硒中使用:

WebElement.clear()

void clear()如果此元素是文本输入元素,则此项将被清除 价值。对其他元素没有影响。文本输入元素是 输入和文本区域元素


一个可能的答案是,在您试图清除的元素之前,有另一个同名元素

请检查html并检查,如果发现多个元素,则取第一个元素

作为替代方案,您可以使用css选择器,如:

.searchInput[name*=搜索距离]