我使用 selenium 來檢查 FB 頁面是否存在。當我在搜索欄中輸入頁面標題時,它工作正常,但在第二次循環之后,頁面的名稱會附加到預覽搜索,我無法找到清除先前搜索的方法。例如,它第一次查找 xyz,然后當我這次只想查找 abc 時,它查找 xyzabc。如何清除搜索欄,以便我可以直接輸入內容而無需先前的輸入?這是我的代碼 for page_target in df.page_name.values: time.sleep(3) inputElement = driver.find_element_by_name("q") inputElement.send_keys(page_target) inputElement.submit() time.sleep(5) html = driver.page_source soup = BeautifulSoup(html, 'html.parser').get_text() title = soup.find(page_target) #if page exists add 1 to the dic otherwise -1 if title > 0: dic_holder[page_target] = 1 else: dic_holder[page_target] = -1 driver.find_element_by_name("q").clear() time.sleep(3)
2 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
您可以使用 WebElement.clear();// 清除先前的搜索項 WebElement.sendkeys(abc);// 插入新的搜索項
另外,我猜您的應用程序中有一個粘性搜索,因此我建議您每次在搜索框中插入內容時都使用此方法

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
幾種方法可以做到:
使用
element.clear()
。我看到您已經在代碼中嘗試過,不確定它是如何不起作用的,但我猜它不是文本框或輸入元素?使用 JavaScript:
driver.execute_script('document.getElementsByName("q")[0].value=""');
模擬 Ctrl+A?
from selenium.webdriver.common.keys import Keys
elem.send_keys(Keys.CONTROL, 'a')
elem.send_keys("page 1")
添加回答
舉報
0/150
提交
取消