3

セレンのpythonスクリプトで使用するために別のウィンドウで開かれたウィンドウにある要素のxpathを見つけようとしています。

ページは基本的に、内部に別のページをホストするフレームです (ブラウザ ウィンドウ内のブラウザを考えてください)。

外側のブラウザー ウィンドウ内にあるウィンドウ自体の xpath を見つけることができますが、xpath を使用して内側のウィンドウの要素を選択できないようです。

これは、必要な要素を選択するための全体的な xpath です。

/html/body/div/div[2]/table/tbody/tr/td[2]/form/div/div/div/div/div/table[2]/tbody/tr/td/div/div/div/div/div[2]/div/span/iframe/html/body/table/tbody/tr/td/div[3]/div[2]/div[2]/table/tbody/tr/td[2]/div/a[1]

内部ウィンドウを選択するための xpath は次のとおりです。

/html/body/div/div[2]/table/tbody/tr/td[2]/form/div/div/div/div/div/table[2]/tbody/tr/td/div/div/div/div/div[2]/div/span/iframe

内部ウィンドウ内の項目を選択するための xpath (内部ウィンドウのページに直接ある場合) は次のとおりです。

/html/body/table/tbody/tr/td/div[3]/div[2]/div[2]/table/tbody/tr/td[2]/div/a[1]

これらすべての方法を試してみましたが、内部ページの要素を選択できませんでした。

Python コードは次のとおりです。

    survivorFrame = driver.find_elements_by_xpath(".//*[@id='theSurvivorIframe']")[0]
    driver.switch_to_frame(survivorFrame)
    elem1 = driver.find_elements_by_xpath(".//*[@id='lea1_ileinner']/a[1]")
    survivorOwner = re.search('>(.*)<', elem1)
    print elem1
    print survivorOwner
4

2 に答える 2

5

コントロールを iframe 内に切り替えてから、webelement とやり取りする必要があります

iframe = driver.find_elements_by_tag_name('iframe')[0] 
driver.switch_to_frame(iframe)

そしてiframeから出てメインウィンドウに戻ります

driver.switch_to_default_content()
于 2013-06-12T21:30:27.883 に答える
0

これを使ってみてください:

driver.switch_to.frame(driver.find_element_by_id('yourframeid'));

は、yourframeidフレームまたは iframe の ID です。

于 2015-04-15T21:43:04.750 に答える