我一直在尝试填充输入:
<input id="PASSFIELD1" class="logField" type="password" onkeyup="next(this, event);" maxlength="1" autocomplete="off" name="PASSFIELD1"></input>
为此,我必须找到此元素。
我尝试以下事情:
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]") (萤火虫的路径)
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:消息:’无法找到元素:(…)
你知道我在做什么错吗?
问题是您的input标签位于内iframe,您需要先切换到它:
input
iframe
frame = driver.find_element_by_xpath('//frame[@name="main"]') driver.switch_to.frame(frame) pass1 = driver.find_element_by_id("PASSFIELD1")