如何使用selenium向hideNameInput发送密钥?

2024-06-28 20:50:14 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是HTML元素,我想在spanid="nameNoteId"中输入一些内容

<span onclick="hideNameInput()" id="nameNoteId">Username</span>

下面是代码

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

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

# driver = webdriver.PhantomJS()
driver = webdriver.Firefox()
driver.get(url)
elem = driver.find_element_by_id('passwordId')
elem.send_keys('something')
not_work_elem = driver.find_element_by_id('nameNoteId')
not_work_elem.click()
not_work_elem.send_keys('test')

driver.close()

Tags: fromimportidhttpurldriverseleniumnot
1条回答
网友
1楼 · 发布于 2024-06-28 20:50:14

send_keys()在这里不起作用,因为它是span元素。如果要更改span内容,应尝试使用execute_script()如下所示:-

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

已编辑:-在spanhideNameInput()函数上调用clicked时查看您的网站,该函数提供对unameId输入的关注并隐藏可见的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')

希望能有帮助……:)

相关问题 更多 >