我使用 selenium 來(lái)檢查 FB 頁(yè)面是否存在。當(dāng)我在搜索欄中輸入頁(yè)面標(biāo)題時(shí),它工作正常,但在第二次循環(huán)之后,頁(yè)面的名稱(chēng)會(huì)附加到預(yù)覽搜索,我無(wú)法找到清除先前搜索的方法。例如,它第一次查找 xyz,然后當(dāng)我這次只想查找 abc 時(shí),它查找 xyzabc。如何清除搜索欄,以便我可以直接輸入內(nèi)容而無(wú)需先前的輸入?這是我的代碼 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貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用 WebElement.clear();// 清除先前的搜索項(xiàng) WebElement.sendkeys(abc);// 插入新的搜索項(xiàng)
另外,我猜您的應(yīng)用程序中有一個(gè)粘性搜索,因此我建議您每次在搜索框中插入內(nèi)容時(shí)都使用此方法

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
幾種方法可以做到:
使用
element.clear()
。我看到您已經(jīng)在代碼中嘗試過(guò),不確定它是如何不起作用的,但我猜它不是文本框或輸入元素?使用 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")
添加回答
舉報(bào)
0/150
提交
取消