特定のWebページでフォームに記入しようとしています。私はほとんど ページで成功していますが、特定のものは私にトラブルを与えています。セレン、ポップアップフォーム(Python)
ページの中には、最初にフォーム自体が表示されない形式のページがあります。代わりにボタンをクリックすると、ページ内にポップアップが表示されます。
新しいポップアップウィンドウで作成され、アラートウィンドウで作成されるフォームを埋める方法に対処する例を見てきました。しかし、私はこの特定のケースを解決することができる例を見つけることができないようです。
これはこれまでのコードです。
driver = webdriver.Chrome()
driver.implicitly_wait(10)
mouse = webdriver.ActionChains(driver)
driver.get(url)
driver.maximize_window()
value = 'fill form'
span_xpath = '//span[contains(text(), "' + value + '")]'
span_element = driver.find_element_by_xpath(span_xpath)
mouse.move_to_element(span_element).click().perform()
time.sleep(5)
ここまではすべて動作し、フォームのボタンがクリックされてブラウザのページにフォームが開きます。
しかし、次が実行されたときにエラーが常に発生しません:「そのような要素:要素を見つけることができない」私はというように、名前、ID、XPathのことで要素を見つけることを試みた
n =driver.find_element_by_id('name')
n.send_keys('john smith')
けどをどのような試行をしても、フォーム要素のいずれも見つけることができません。
この問題については、私は大いに感謝します。 driver.switch_to_frame(0) (parent iFrame)
を用い
pop要素がフレーム/ iframeの内側にないことを確認しますか? –
@SaurabhGaur、はい、iframeにあります。しかしiframe内のiframeです。 src = driver.find_element_by_id( "iframe_id")。get_attribute( "src")を使用して、最初のiframeのsrcにアクセスできます。しかし、2番目のiframe withiinのiframeにはIDがないので、srcを取得する方法がわからない –
子のiframeにアクセスする前に最初の親iframeを切り替える必要があります –