2016-04-14 6 views
0

セレニウムの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"> 

はに値を挿入する必要がある - >名前=「ABC」が、要素を見つけることができません。使用

コード:

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

私はこれがあなたの本当の問題ではないと思います。しかし、あなたはあなたのxpath @ class = "xxyz5"の中に1つのxをたくさん持っていますが、とにかくidで選択すれば十分です。入力要素を取得する前にポップアップが追加されるのを待つために遅延を追加する必要があります。 –

+0

'x'はここで入力ミスです。要素を見つけることができない遅延を追加した後 – Aniket

答えて

0

あなたの問題は、セレンは、「速すぎる」であり、それはページに表示される前に要素を探している可能性があります。

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

get .....このコードを使用した後、TimeoutException(message、screen、stacktrace)を発生させます。 – Aniket

関連する問題