1

私のpython Seleniumテストは、いかなる問題なくFirefoxのdirver(GUI)に取り組んでいます。しかし、私はヘッドレスモードでテストを実行したかったのです。私はヘッドレスモード(いくつかの変更を加えて)で同じスクリプトを実行しようとすると。それはwierdエラーを与える。PhantomJS Pythonの問題

例:

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("[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:idと 'ext-gen1499'と言っていると思います。 「id」は私にとってダイナミックに見えます。 HTMLを共有してください。 – DebanjanB

+0

これはFirefoxのGUIで動作しています。同じ要素ID –

+0

HTMLを共有してください – DebanjanB

答えて

0

/sのターゲットページ要素を完全にロードすることを可能にするため、AT-10秒以上の暗黙の待機を追加することをお勧めします。

driver.implicitly_wait(10)