2016-09-27 88 views
1

對於一個學校項目,我試圖創建一個Python腳本,可以從不同的網站填寫不同的表單。硒Python:無法通過ID /名稱/ css選擇器獲取元素

這裏有一些東西,對於某些類型的網站,我無法捕捉到Selenium的表單元素。 例如在這個網站:http://www.top-office.com/jeu 在我用firefox檢查頁面的情況下,輸入「名稱」框的ID爲「lastname」,但Selenium無法獲取它。當我顯示此頁面的html代碼時,表單看起來像是從另一個頁面或其他東西中包含的。

我試圖getelementbyid,byname,bycssselector等 我也嘗試使用WebDriverWait(driver,5)等待頁面被完全加載,但它仍然不起作用。

您有任何解決方案或建議嗎?

PS:即使使用JavaScript,我不能夠通過ID來獲得這個元素

感謝

回答

1

元素,你正在試圖與之交互是一個iframe內。您需要使用driver.switch_to_frame()方法才能將驅動程序切換爲專注於該iframe。只有當它切換到該iframe時,它才能與其元素進行交互。關於如何使用它,請參閱this post。您可以使用xpath來找到iframe,如下所示://iframe[@src = 'https://adbx.me/grandjeuclubmed/']。然後,您可以使用我提供給您的帖子中提到的代碼。

+0

你怎麼知道元素是在一個框架?在我看到iFrame代碼後,我只想到了這一點''iframe style =「border:none; overflow:hidden; width:810px; height:850px; display:block; margin:0 auto;」 src =「https://adbx.me/grandjeuclubmed/」frameborder =「0」scrolling =「no」width =「320」height =「240」>​​' – testerjoe2

+0

我去了網站並檢查了有問題的元素在Chrome上使用開發者工具)。它顯然在iframe中。 – scomes

+0

謝謝,它幫助了很多! –