为了账号安全,请及时绑定邮箱和手机立即绑定

使用 selenium 清除搜索栏

使用 selenium 清除搜索栏

喵喔喔 2023-12-12 21:34:44
我使用 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);// 插入新的搜索项

另外,我猜您的应用程序中有一个粘性搜索,因此我建议您每次在搜索框中插入内容时都使用此方法


查看完整回答
反对 回复 2023-12-12
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

几种方法可以做到:

  1. 使用element.clear()。我看到您已经在代码中尝试过,不确定它是如何不起作用的,但我猜它不是文本框或输入元素?

  2. 使用 JavaScript:driver.execute_script('document.getElementsByName("q")[0].value=""');

  3. 模拟 Ctrl+A?

from selenium.webdriver.common.keys import Keys


elem.send_keys(Keys.CONTROL, 'a')

elem.send_keys("page 1")


查看完整回答
反对 回复 2023-12-12
  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信