【问题标题】:Why am I not able to open google.com using Selenium?为什么我无法使用 Selenium 打开 google.com?
【发布时间】:2021-07-13 14:45:43
【问题描述】:

当我问这个 StackOverflow 问题时,我正在从事的这个项目与我正在从事的项目相同: I'm getting a name error when running Selenium-based code。 同样,这两个问题都与 Selenium 有关。 但是,这次我没有收到任何错误,但是我要打开的网站没有打开。 而且我确定我的 chrome_directory 是正确的。不知道为什么 Google.com 没有打开。 这是我的代码:

from selenium import webdriver
  class Infow():

def __init__(self):
    self.driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\Chrome Driver@C drive\ChromeDriverExtracted\chromedriver_win32 (2)\chromedriver.exe')
    def get_infow(self, query):
        self.query = query
        self.driver.get(url="https://www.google.com/")
        assist.Infow()
        assist.get_infow("exe")

这是我在终端看到的文字

      "D:\Rocland\Selenium Pycharm\Scripts\python.exe" "D:/PycharmProjects/Selenium 
      Pycharm/Selenium for trevor.py"
      Process finished with exit code 0

如果这个问题毫无意义,我深表歉意。我是硒初学者 看到的所有堆栈都没有回答我的问题。 (我不确定这是否有帮助,但我在 Win10 上使用 PyCharm) 我希望我的观点很清楚,任何人的帮助都会很高兴地被接受。 提前致谢!

【问题讨论】:

    标签: python python-3.x selenium pycharm selenium-chromedriver


    【解决方案1】:

    第二行有缩进问题:class Infow()
    试试这个,然后自己调试。

    from selenium import webdriver
    
    
    def __init__(self):
        self.driver = webdriver.Chrome(executable_path='your path')
        self.driver.get(url="https://www.google.com/")
    

    类应该是这样的:

    class Testing:
        def __init__(self, name=None, number=None):
            self.name = name
            self.number = number
    

    根据您的情况检查示例。我使用 Linux,所以我的 executable_path 与您的不同。您的似乎是正确的,因为您没有任何错误:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    
    driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
    driver.get("https://www.google.com/")
    assert "Google" in driver.title
    wait = WebDriverWait(driver, 20)
    wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".gLFyf.gsfi")))
    input_field = driver.find_element_by_css_selector(".gLFyf.gsfi")
    input_field.send_keys("Why are people so mad?")
    input_field.send_keys(Keys.RETURN)
    
    wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".yuRUbf")))
    results = driver.find_elements_by_css_selector(".yuRUbf>a>h3")
    for result in results:
        print(result.text)
    driver.close()
    driver.quit()
    

    此外,我已经使用 unittest 实现了。这应该可以回答您的所有问题:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    import unittest
    
    
    class SiteTest(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
    
        def test(self):
            driver = self.driver
            driver.get('https://google.com/')
            driver.get("https://www.google.com/")
            assert "Google" in driver.title
            wait = WebDriverWait(driver, 20)
            wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".gLFyf.gsfi")))
            input_field = driver.find_element_by_css_selector(".gLFyf.gsfi")
            input_field.send_keys("Why are people so mad?")
            input_field.send_keys(Keys.RETURN)
    
            wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".yuRUbf")))
            results = driver.find_elements_by_css_selector(".yuRUbf>a>h3")
            for result in results:
                print(result.text)
    
        def tearDown(self):
            self.driver.close()
            self.driver.quit()
    
    
    if __name__ == "__main__":
        unittest.main()
    

    【讨论】:

    • 我仍然得到相同的输出@vitaliis。我该怎么办?
    • 在这里查看stackoverflow.com/questions/20645129/…。简而言之,退出代码 0 不是错误。您的程序中没有任何输出。
    • 另外,请在此处查看我的答案。它应该对你有很大帮助。尝试运行这个小程序并改进它stackoverflow.com/questions/67148905/…
    • 我会尝试放置错误的位置并检查我这边的错误是什么
    • 查看示例
    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多