ti0*_*878 25 python selenium selenium-webdriver
我一直在尝试填充输入:
<input id="PASSFIELD1" class="logField" type="password" onkeyup="next(this, event);" maxlength="1" autocomplete="off" name="PASSFIELD1"></input>
Run Code Online (Sandbox Code Playgroud)
要做到这一点,我必须找到这个元素.
我在下面尝试过:
pass1=driver.find_element_by_name("PASSFIELD1")
pass1=driver.find_element_by_id("PASSFIELD1")
pass1= driver.find_element_by_xpath("/html/body/div[4]/div/div/div[2]/div/form/div[3]/table/tbody/tr[3]/td[2]/div/input[1]") (来自萤火虫的路径)
甚至等待100秒
self.wait.until(EC.visibility_of_element_located((By.XPATH,"/html/body/div[4]/div/div/div[2]/div/form/div[3]/table/tbody/tr[3]/td[2]/div/input[1]")))
self.assertTrue(self.driver.find_element_by_xpath("/html/body/div[4]/div/div/div[2]/div/form/div[3]/table/tbody/tr[3]/td[2]/div/input[1]"))
我总是得到:
selenium.common.exceptions.NoSuchElementException:消息:'无法找到元素:(...)
你知道我做错了什么吗?
ale*_*cxe 26
问题是你的input标签在里面iframe,你需要先切换到它:
frame = driver.find_element_by_xpath('//frame[@name="main"]')
driver.switch_to.frame(frame)
pass1 = driver.find_element_by_id("PASSFIELD1")
Run Code Online (Sandbox Code Playgroud)
向驱动程序添加一些延迟,以便加载元素。
import time
time.sleep(2)
department_element = driver.find_elements_by_id("__id_name__")
Run Code Online (Sandbox Code Playgroud)
否则您可以使用以下代码,以便循环运行直到元素渲染
while len(driver.find_elements_by_id("__id_name__")) == 0:
pass
department_element = driver.find_elements_by_id("__id_name__")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19673 次 |
| 最近记录: |