python - 如何使用 selenium 向 hideNameInput 发送 key ?

标签 python selenium input

下面是 HTML 元素,我想在范围 id="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()

最佳答案

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")

已编辑:- 在调用了 hideNameInput() 函数上的 点击 后看到您的网站,该函数提供了对 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')

希望有帮助...:)

关于python - 如何使用 selenium 向 hideNameInput 发送 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38501099/

相关文章:

Python 模运算符给出意外结果

ruby - 使用 Selenium 清除浏览器缓存

java - 我们如何在使用数据提供者时动态命名测试用例

java - 使用命令行运行 Java 类

macos - 在 Swift 中逐行读取文件/URL

python - 如何使用不同的条件填充缺失值

python - _mysql_exceptions.OperationalError

python - 在 while 循环中从键盘读取字符

javascript - 将输入更改为大写,光标不会跳到文本末尾

python - 如何按时间戳向后过滤数据