Selenium 打不开 Firefox

Selenium does't open firefox

我正在尝试使用 selenium 和 firefox,但它只是打开浏览器并设置此错误:

Error

用Chrome就可以了

这是代码:

from selenium import webdriver 驱动程序 = webdriver.Firefox(executable_path = "c:/my-apps/geckodriver.exe")

非常感谢

嘿,您可以使用下面给出的代码

driver = webdriver.Firefox()
driver.implicitly_wait(5)
driver.maximize_window()
driver.get('URL')

我认为你应该把你的 geckodriver 放在你编码的同一个文件夹中

如果这不起作用,您需要升级 geckodriver

嘿根据你的错误 当您打开网站时,您的 1 元素不正确 您需要更改网站的 1 个元素

当您尝试在 HTML 页面中查找任何不存在的元素时,将引发 NoSuchElementException


第一个可能的解决方案:

您需要导入

from selenium.common.exceptions import NoSuchElementException

那你可以使用try except

try:
  your_element = driver.find_element_by_xpath(".//*[@id='loginForm:username']")
  your_element.click()
except NoSuchElementException:
  pass

第二种可能的解决方案:

不导入任何东西,检查该元素是否存在,如果存在则点击

your_element = driver.find_elements_by_xpath(".//*[@id='loginForm:username']")
if len(your_element) > 0:
    elem[0].click()
wait=WebDriverWait(self.driver,60) 
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"#loginForm:username"))).send_keys("a")

通常 Firefox 比 Chrome 慢一点,所以您的问题可能是查找元素的时间问题。建议等待元素可点击,然后继续向其发送密钥。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC