问题描述
我一直在尝试填充输入:
I've been trying fill input:
<input id="PASSFIELD1" class="logField" type="password" onkeyup="next(this, event);" maxlength="1" autocomplete="off" name="PASSFIELD1"></input>
为此,我必须找到该元素.
To do this, I have to find this element.
我尝试了以下操作:
-
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]")
(firebug的路径)
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]")
(path from firebug)
甚至要等待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]"))
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]"))
我总是得到:
你知道我在做什么错吗?
Do you know what I am doing wrong?
推荐答案
问题是您的input
标记位于iframe
内部,您需要它:
The problem is that your input
tag is inside an iframe
, you need to switch to it first:
frame = driver.find_element_by_xpath('//frame[@name="main"]')
driver.switch_to.frame(frame)
pass1 = driver.find_element_by_id("PASSFIELD1")
这篇关于带有硒的Python:无法找到真正存在的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!