使用 selenium 清除搜索栏

我使用 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)


喵喔喔
浏览 69回答 2
2回答

UYOU

您可以使用 WebElement.clear();// 清除先前的搜索项 WebElement.sendkeys(abc);// 插入新的搜索项另外,我猜您的应用程序中有一个粘性搜索,因此我建议您每次在搜索框中插入内容时都使用此方法

慕桂英4014372

几种方法可以做到:使用element.clear()。我看到您已经在代码中尝试过,不确定它是如何不起作用的,但我猜它不是文本框或输入元素?使用 JavaScript:driver.execute_script('document.getElementsByName("q")[0].value=""');模拟 Ctrl+A?from selenium.webdriver.common.keys import Keyselem.send_keys(Keys.CONTROL, 'a')elem.send_keys("page 1")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python