6

clear()在这种情况下不起作用。我在追加后追加。
searchForMovie.clear()不工作...我也尝试发送
CTRL + 'a',然后发送DELETE. 同样,我得到的只是追加......

 for movie in allMissing:

            time.sleep (10)

            searchForMovie = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))  

            searchForMovie.send_keys (movie)

            # click
            enter = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-submit")))  

            driver.execute_script ("arguments[0].click()", enter)


            # clear the search text box
            searchForMovie = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))

            searchForMovie.clear()
4

3 回答 3

6

要清除文本框,您需要将WebDriverWait设置expected_conditionselement_to_be_clickable,然后click()WebElement上调用,然后clear()按如下方式调用:

# clear the search text box
searchForMovie = WebDriverWait (driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#search-text")))
searchForMovie.click()
searchForMovie.clear()
于 2018-03-07T12:14:32.657 回答
3

我认为它应该很简单:

driver.execute_script("$('#search-text').val('');")

如果你想在没有 jQuery 的情况下这样做,你可以使用纯 javascript:

document.getElementById('search-text').value = '';
于 2020-01-19T09:45:19.110 回答
3

如果.clear()不起作用,您可以尝试:

from selenium.webdriver.common.keys import Keys

#...your code (I was using python 3)

driver.find_element_by_id('foo').send_keys(Keys.CONTROL + "a");
driver.find_element_by_id('foo').send_keys(Keys.DELETE);
于 2020-08-13T15:36:27.700 回答