我使用 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
提交
取消