【问题标题】:Going to Random Link from Search (Selenium)从搜索中转到随机链接(Selenium)
【发布时间】:2020-11-07 18:29:27
【问题描述】:
        #Searches in google for "How to Cook"

        driver.get('https://www.google.com/')
        time.sleep(2)
        driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input') \
            .send_keys("How to Cook")
        time.sleep(3)
        driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input') \
            .send_keys(Keys.ENTER)
        # driver.find_element_by_xpath('//*[@id="search"]')

        #Clicks on Random Link (the part I need help with)

        results = driver.find_elements_by_xpath("//div[@class='g']//div[@class='rc']//a[not(@class)]")
        for result in results:
            resultsList = result.get_attribute("href")
            print(resultsList)

所以我在访问随机链接时遇到了一些麻烦。我已经设置了去谷歌的过程,搜索如何烹饪,点击进入,然后在该页面上获取我想要选择的所有链接,然后将它们打印出来。我正在努力解决如何从 for 循环中获取其中一个链接并将其打印出来,导致只打印出一个链接而不是所有链接。然后我会使用那个链接和 .get() 到那个。提前致谢!

【问题讨论】:

    标签: python selenium for-loop random selenium-chromedriver


    【解决方案1】:
    num1 = random.randint(0, len(results));
    driver.get(results[num1].get_attribute("href"))
    print(results[num1].get_attribute("href"))
    

    【讨论】:

    • 为了确认一下,您将所有这三行都放在 for 循环中并替换掉已经存在的两行?当我这样做时,它工作并加载了一个随机页面,但我收到了一个错误:selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attach to the page document
    • 请参阅:stackoverflow.com/questions/18225997/… 可能您的 DOM 已更改。
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2016-07-14
    • 2018-10-03
    • 1970-01-01
    • 2021-08-23
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多