2016-07-21 8 views
1

ここに要素があります。私は名前に何かを入力したいという意味です.NoteId。ここseleniumをこのhideNameInputに送信する方法を教えてください。

<span class="table_n_abs" onclick="hideNameInput()" id="nameNoteId" style="top: 10px; font-size: 14px; font-family: 微软雅黑; display: block;">邮箱/手机号/帐号</span> 

はコードです:それはspan要素であるため、

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

import time 
url = 'http://passport2.chaoxing.com/login?fid=1479&refer=http://i.mooc.chaoxing.com' 
# driver = webdriver.PhantomJS() 
driver = webdriver.Firefox() 
driver.get(url) 
time.sleep(1) 
elem = driver.find_element_by_id('passwordId') 
elem.send_keys('CNM') 
not_work_elem = driver.find_element_by_id('nameNoteId') 
not_work_elem.click() 
not_work_elem.send_keys('test') 

time.sleep(10) 
driver.close() 

答えて

1

send_keys()は、ここでは動作しません。 unameId入力にフォーカスを提供し、可視を隠しと呼ばれるスパンhideNameInput()機能のときclickedあなたのウェブサイトを見た後 - :

not_work_elem = driver.find_element_by_id('nameNoteId') 
driver.execute_script("arguments[0].textContent = arguments[1]", not_work_elem, "test") 

編集 - :あなたは以下のようにexecute_script()を使用してみてくださいspan内容を変更したい場合あなたは以下のようにしてみてください必要がありますのでspanは、: -

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

url = 'http://passport2.chaoxing.com/login?fid=1479&refer=http://i.mooc.chaoxing.com' 

driver = webdriver.Firefox() 
driver.get(url) 

wait = WebDriverWait(driver, 10) 

span = wait.until(EC.visibility_of_element_located((By.ID, "nameNoteId"))) 
span.click() 

unameId = wait.until(EC.visibility_of_element_located((By.ID, "unameId"))) 
unameId.send_keys('test') 

passwordId = wait.until(EC.visibility_of_element_located((By.ID, "passwordId"))) 
passwordId.send_keys('CNM') 

はそれが役に立てば幸い... :)

+0

Iは、D idは、スパンの内容を変更することを意味していません。 – panda0

+0

どうすればいいですか? – panda0

+0

@ panda0あなたの質問でそれを指定する必要があります。あなたの質問は明確ではなく、ログインフォームのHTMLを提供します.. –

関連する問題