2016-04-14 29 views
0

已經嘗試了一段時間來弄清楚如何使用Selenium python處理彈出窗體。如何在Python中使用Selenium訪問彈出窗體

在單擊它後打開一個新的彈出窗口,我必須輸入值時有一個元素「添加」。無法找到要插入值的元素。 沒有使用iframe。在彈出

HTML代碼如下所示:

<div id="form-1322" class="xyz" > 
<div id="form-1322-body" class="xyz1" > 
    <span id="outerCt" role="presentation""> 
    <div id="innerCt"role="presentation""> 
    <table id="ext-comp-1317" class="xyz2" > 
    <tbody> 
     <td id="body1" class="xyz4"> 
     <input id="body2" class="xyz5" name="abc"> 

需要插入值 - > NAME = 「ABC」,但無法找到的元素。使用

代碼:

Name=driver.find_element_by_xpath('//input[@id="body2"][@class="xyz5"][@name="abc"]') 
Name.send_keys("login") 
+0

我不認爲這是你真正的問題。但是你在xpath @ class =「xxyz5」中有一個x,不管怎麼說,通過id選擇應該已經足夠了,也許你需要添加一個延遲來等待彈出框被添加,然後再嘗試獲取輸入元素 –

+0

一個額外的'x'在這裏是一個打字錯誤,加了延遲之後也無法找到元素。 – Aniket

回答

0

你的問題很可能是硒是「太快」,並正在尋找的元素出現在頁面上之前。嘗試使用WebDriverWait

from selenium.webdriver.support.ui import WebDriverWait 
element = WebDriverWait(driver, 10).until(
     lambda driver : driver.find_element_by_xpath('//input[@id="body2"][@class="xxyz5"][@name="abc"]') 
element.send_keys('login") 
+0

正在使用這段代碼後得到..... raise TimeoutException(message,screen,stacktrace).... – Aniket

相關問題