1

파이썬 셀렌 테스트는 아무런 문제없이 파이어 폭스 다이버 (GUI)에서 작동합니다. 하지만 헤드리스 모드로 테스트를 실행하고 싶었습니다. 내가 헤드리스 모드 (수정하지 않고)로 같은 스크립트를 실행하려고 할 때. 그것은 wierd 오류를 제공합니다.PhantomJS python 문제

예 :

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

파이썬 스크립트 :

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("[email protected]") 
     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("[email protected]") 
    driver.find_element_by_id("textfield-1265-inputEl").send_keys("Automated Test Mail from Selenium") 
    driver.find_element_by_id("button-1252-btnIconEl").click() 

내가 아무것도 실종?

+0

오류가 'NoSuchElementException : with id'ext-gen1499 '라고 표시됩니다. 'id'는 역동적 인 것처럼 보입니다. HTML을 공유하십시오. – DebanjanB

+0

이것은 Firefox GUI에서 작동됩니다. 같은 요소 ID –

+0

HTML을 공유하십시오. – DebanjanB

답변

0

대상 페이지 요소를 완전히로드 할 수 있도록 최소한 10 초의 암시 적 대기를 추가하는 것이 좋습니다.

driver.implicitly_wait(10)