【问题标题】:How to click on a search engine result if it matches the searched value如果与搜索值匹配,如何点击搜索引擎结果
【发布时间】:2020-04-27 12:13:56
【问题描述】:

我是硒的新手。我正在接受用户输入,并基于此,我正在duckduckgo 中搜索它。我想,如果输入值与搜索结果 web 链接匹配,代码应该点击匹配的网站。我的代码执行成功,但没有点击网页链接。这是我的代码:-

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException

stuff = input()
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument("==lang=es")
browser = webdriver.Chrome()
browser.implicitly_wait(30)
browser.maximize_window()

browser.get('http://www.duckduckgo.com')
elem = browser.find_element_by_name('q')
elem.clear()

elem.send_keys(stuff)
elem.submit()

list = stuff.lower().replace(' ', '').split(',')
for a in browser.find_elements_by_id('links'):
    b = a.find_elements_by_tag_name('a')
    for link in b:
        url = link.get_attribute('href')
        if any(dom in url for dom in list):
            link.click()
        break

例如;我输入这个输入值 - Mitchell Centre, Darwin CBD, 0800 并且我的代码运行并打开duckduckgo 并在搜索栏中输入这个值,它应该点击与我的输入值匹配的网站(在蓝色气泡中),但代码在此之后停止。

我不明白是什么问题,如果你们能帮助我,那就太好了。

【问题讨论】:

    标签: python selenium selenium-webdriver automation


    【解决方案1】:

    其实我是Java背景,但是如果你能把我的两行java代码转换成python你就可以实现它

    你的代码:

    对于 b 中的链接: url = link.get_attribute('href') 如果有(列表中的 dom 的 url 中的 dom): 链接.click() 打破

    代替link.get_attribute,将上面的代码转换成下面的样子

    在 Java 中,我们有 .getText() 方法来获取文本。

    所以尝试使用 python 获取您要查找的文本,如下所示(我使用 Java)

    link.getText() store this in a variable
    
    For ex as in Java : String str = link.getText()
    

    然后是你的 if 条件

    使用你的 contains 方法,就像在 python 中一样,下面的一个是在 Java 中

    if(str.contains("Mitchell Centre, Darwin CBD, 0800"))

    link.click()
    break
    

    这段代码对我来说很好用。

    【讨论】:

    • 嘿,我试过了,我用 url = link.text 来获取文本值,然后我用 if stuff in url: link.click() ,但什么也没发生
    猜你喜欢
    • 2012-04-10
    • 1970-01-01
    • 2020-12-26
    • 2011-04-22
    • 2016-04-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多