2015-06-30 35 views
1

打印所以这是我运行代码:无法取得webelement在Python 2.7

from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium import webdriver 
from selenium.webdriver.support import ui 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.common.keys import Keys 
current_price = [] 
def page_is_loaded(driver): 
    return driver.find_element_by_tag_name("body") != None 
driver = webdriver.Firefox() 
driver.get("https://marketsworld.com/") 
wait = WebDriverWait(driver, 10) 
wait.until(page_is_loaded) 
email_field = driver.find_element_by_id("user_login_email") 
email_field.send_keys("myusername") 
password_field = driver.find_element_by_id("user_login_password") 
password_field.send_keys("mypass") 
password_field.send_keys(Keys.RETURN) 
element = driver.find_element_by_class_name("market_value") 
instance = element.text 
print instance 

当我尝试打印instance,输出我得到的是

/usr/bin/python2.7 /home/phuhzy/PycharmProjects/pychar_test/test2.py 

(I don't get any output here. Only a blank line.) 

Process finished with exit code 0 

不确定为什么我得到一个空行作为输出。如果我将它打印为print type(instance),我将unicode作为类型返回。

+0

测试它尝试打印'再版(实例)',它更像是在交互式Python提示符输出。顺便说一句:升级到Python 3! –

+0

谢谢你的帮助。我是一个白痴,只从网页上有超过一个类名称market_value的网页调用market_value的第一个实例。我对python还是一个相当新的东西,一旦我有了基础知识,就会升级到3。 – dvitt90

回答

0

我假设element.text是空的或None并且没有什么可打印的。

不知道实际的数据是不可能的。

您可以通过

if not instance: 
    print "No data" 
+0

谢谢你的帮助,后来我发现如果我把它放在一个列表中,然后打印出列表,我会得到你'' 。这意味着这个unicode是一个空字符串,后来我意识到我是一个白痴,并且只从网页上的market_value的第一个实例调用,这个网页在网页上有多个类名称market_value,我通过调用element = driver.find_elements_by_class_name(“market_value”)|然后打印len的元素,发现有4个market_value.3的实例,它有一个空字符串/没有值和一个有我正在寻找的值。 – dvitt90