2013-08-28 138 views
-1

的价值我已经对硒IDE的记录,并远销它webdriver的蟒蛇,我想存储一个文本框的值,但我不能让它的工作..蟒蛇硒保存textfileld

脚本是相当很多标准除了这部分:

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 Shorturl(unittest.TestCase): 
def setUp(self): 
    self.driver = webdriver.Firefox() 
    self.driver.implicitly_wait(30) 
    self.base_url = "http://shorturl.com/" 
    self.verificationErrors = [] 
    self.accept_next_alert = True 

def test_shorturl(self): 
    driver = self.driver 
    driver.get(self.base_url + "/") 
    driver.find_element_by_name("longurl").clear() 
    driver.find_element_by_name("longurl").send_keys("http://lalala.com/") 
    driver.find_element_by_css_selector("input[type=\"image\"]").click() 

    driver.find_element_by_css_selector("input[type=\"submit\"]").click() 
    driver.find_element_by_id("txtfld").click() 
    time.sleep(3) 

    noah = driver.find_element_by_id("txtfld").text 
    print noah 

    file = open("datafile.txt", "w") 
    file.write(noah) 
    file.close() 

def is_element_present(self, how, what): 
    try: self.driver.find_element(by=how, value=what) 
    except NoSuchElementException, e: return False 
    return True 

def is_alert_present(self): 
    try: self.driver.switch_to_alert() 
    except NoAlertPresentException, e: return False 
    return True 

def close_alert_and_get_its_text(self): 
    try: 
     alert = self.driver.switch_to_alert() 
     alert_text = alert.text 
     if self.accept_next_alert: 
      alert.accept() 
     else: 
      alert.dismiss() 
     return alert_text 
    finally: self.accept_next_alert = True 

def tearDown(self): 
    #self.driver.quit() 
    self.assertEqual([], self.verificationErrors) 

if __name__ == "__main__": 
unittest.main() 

它点击它,但它不打印它或保存在文件中。

谢谢。

+0

您能否注意到您尝试解析的实际url? – alecxe

+0

通常,如果您想知道它设置了哪个“值”,那么通常需要使用“文本字段”来获取该值,而不是其“文本”。 'driver.find_element_by_id(“txtfld”)。get_attribute(“value”)' –

+0

明白了,我怎么能给你一个最好的答案或者什么,非常感谢你的帮助,过上了美好的生活。 – user215379

回答

0

通常,如果您想知道设置的值是多少,那么您需要获取该值而不是其文本。

driver.find_element_by_id("txtfld").get_attribute("value")