【问题标题】:PhantomJS python issuePhantomJS python问题
【发布时间】:2018-05-13 22:17:30
【问题描述】:

我的 python selenium 测试在 firefox dirver (GUI) 上运行,没有任何问题。但我想在无头模式下运行我的测试。当我尝试使用无头模式运行相同的脚本时(几乎没有修改)。它给出了奇怪的错误。

例如:

selenium.common.exceptions.NoSuchElementException: Message{"errorMessage":"Unable to find element with id 'ext-gen1499

python 脚本:

import os
import time
from selenium.webdriver.common.proxy import *
from selenium.webdriver.common.by import By
phantomjs_path=r"/home/xxxx/nodejs-installs/phantomjs-2.1.1-linux-x86_64/bin/phantomjs"
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

service_args = ['--proxy=x.x.x.x:80','--proxy-type=https']
driver = webdriver.PhantomJS(executable_path=r'/home/xxxx/nodejs-installs/phantomjs-2.1.1-linux-x86_64/bin/phantomjs',service_args=service_args)

os.environ['MOZ_HEADLESS'] = '1'
driver.get("https://aaaaa.com")


def Login():
    try:
        driver.find_element_by_id("username").send_keys("test@aaaa.com")
        driver.find_element_by_id("password").send_keys("xxxxxxx")
        driver.find_element_by_id("Submit").click()
        login_flag=1
    except:
        print("Error Loading Login page")
        login_flag=0
    finally:
        return login_flag

def CreateMail():
    try:
        element = WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.ID, "button-1143-btnInnerEl")))
        driver.find_element_by_id("button-1143-btnInnerEl").click()

    except TimeoutException:
        print ("Loading took too much time - Create New Mail")

    driver.find_element_by_id("ext-gen1499").send_keys("test@test.com")
    driver.find_element_by_id("textfield-1265-inputEl").send_keys("Automated Test Mail from Selenium")
    driver.find_element_by_id("button-1252-btnIconEl").click()

我错过了什么吗?

【问题讨论】:

  • 我认为错误说明了一切NoSuchElementException: with id 'ext-gen1499'id 在我看来是动态的。请分享 HTML。
  • 这适用于 Firefox GUI。相同的元素 ID
  • 请分享 HTML

标签: python-3.x selenium selenium-webdriver phantomjs selenium-firefoxdriver


【解决方案1】:

最好添加至少 10 秒的隐式等待,以允许目标页面元素完全加载。

driver.implicitly_wait(10)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多