Firefox与Selenium(无头)

克拉克:

如何使用seleniumfirefox刮网站?

安装Firefox,xvfb,硒

echo "deb http://packages.linuxmint.com debian import" >> /etc/apt/sources.list && apt-get update
apt-get install firefox xvfb python-dev python-pip
pip install pyvirtualdisplay selenium

selenium_scrape.py

from pyvirtualdisplay import Display
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

display = Display(visible=0, size=(800, 600))
display.start()

def init_driver():
    driver = webdriver.Firefox()
    driver.wait = WebDriverWait(driver, 5)
    return driver

def lookup(driver, query):
    driver.get("http://www.google.com")
    try:
    box = driver.wait.until(EC.presence_of_element_located(
        (By.NAME, "q")))
    button = driver.wait.until(EC.element_to_be_clickable(
        (By.NAME, "btnK")))
    box.send_keys(query)
button.click()
    except TimeoutException:
        print("Box or Button not found in google.com")

if __name__ == "__main__":
    driver = init_driver()
    lookup(driver, "Selenium")
    time.sleep(5)
    driver.quit()

display.stop()

错误

  File "selenium_scrape.py", line 20
    box = driver.wait.until(EC.presence_of_element_located(
      ^
IndentationError: expected an indented block
瓶装啤酒:

问题是(目前)关于缩进错误。这很容易解决:

def lookup(driver, query):
    driver.get("http://www.google.com")
    try:
        box = driver.wait.until(EC.presence_of_element_located(
            (By.NAME, "q")))
        button = driver.wait.until(EC.element_to_be_clickable(
            (By.NAME, "btnK")))
        box.send_keys(query)
        button.click()
    except TimeoutException:
        print("Box or Button not found in google.com")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用python在Selenium中以编程方式使Firefox无头?

Firefox无头在无头Redhat Linux机器上崩溃

如何在无头的Firefox中拍摄屏幕截图(Java中的Selenium)?

尝试将Xvfb配置为无头运行Firefox

Selenium / WebdriverIO Chrome无头吗?

运行Firefox无头问题

Selenium C#中的无头Firefox

Ruby / Watir:Firefox无头

Selenium Firefox无头的python代理不起作用

Chrome无头-Firefox

如何在以Windows服务运行的Jenkins上以无头模式使用Firefox运行Selenium测试(C#、. NET)

Python Selenium:firefox无头选项不适用于Firefox 52.8.0(32位)

在无头模式下运行Firefox的正确方法(Selenium,Python)

selenium.common.exceptions.InvalidSessionIdException使用GeckoDriver通过Python在无头模式下使用Selenium Firefox

使用业力以无头模式启动Firefox

如何在Raspbian Buster上使用无头Firefox设置Selenium

Selenium Firefox无头返回不同结果

无法调用Firefox无头AttributeError

使用GeckoDriver Selenium和Python在无头模式下使用Firefox 68.9.0esr的504网关超时错误

通过Selenium执行无头Firefox时出错

Selenium-无响应脚本错误(Firefox)

Firefox无法在无头模式下工作

使用硒测试无头Firefox,但会引发错误

无法从 Selenium 无头打开 Chrome

Python Selenium Firefox - 如何启用无头模式作为类/对象的一部分?

python - selenium firefox 便携式无头失败

Puppeteer-firefox 无头模式不支持 webgl

Apache Jmeter - 使用 Firefox 无头模式进行 Selenium 测试

selenium webdriver中firefox的无头模式没有响应