clear()不使用selenium、python和firefox清除文本框

2024-09-28 21:35:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

Tags: oftextsearchbydriverelementselectorcss
3条回答

要清除文本框,需要在expected_conditions设置为element_to_be_clickable的情况下诱导WebDriverWait,然后在WebElement上调用click(),如下所示:

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

我认为应该简单到:

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

如果不想使用jQuery,可以使用纯javascript:

document.getElementById('search-text').value = '';

如果案例.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);

相关问题 更多 >