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
我正在尝试使用 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