2013-03-02 61 views
3

我對Python和Selenium很陌生。Selenium/Python - 無法輸入文本到用戶名字段

我正在嘗試創建一個自動化腳本,其中加載了頁面並且用戶名和密碼字段已完成。

當我在Selenium中運行自動化時,它工作正常(這是一個簡單的過程),但是當我通過python服務器運行時,它不起作用。加載頁面,但沒有填充字段。

任何幫助表示讚賞!

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
import unittest, time, re 

class Pageload(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.Firefox() 
     self.driver.implicitly_wait(30) 
     self.base_url = "http://gymbox.com/" 
     self.verificationErrors = [] 
     self.accept_next_alert = True 

    def test_pageload(self): 
     driver = self.driver 
     driver.get(self.base_url + "/Login") 
     driver.find_element_by_id("login_Email").clear() 
     driver.find_element_by_id("login_Email").send_keys("hello") 
+0

如果使用FEX鉻合金的開發工具檢查源,你會看到你正在尋找的元素是一個嵌入式的iframe中找到。這與此類似http://stackoverflow.com/questions/15047743/selenium-webdriver-unable-to-find-element-by-id-using-python/15053287#15053287。 – TAS 2013-03-02 16:02:10

回答

5

您不能輸入密鑰,因爲它被放在iframe中。嘗試driver.switch_to_frame()然後執行其餘腳本。

這裏的例子:

def test_pageload(self): 
driver = self.driver 
driver.get(self.base_url + "/Login") 
driver.switch_to_frame('iframe') #<iframe> is the ID of your iframe 
driver.find_element_by_id("login_Email").clear() 
driver.find_element_by_id("login_Email").send_keys("hello") 
相關問題