2016-04-20 5 views
0

Ich habe eine URL http://travel.aol.co.uk/2016/03/23/best-hotels-for-families-mediterranean/, die einige Social-Sharing-Links wie Twitter, Facebook usw. hat. Wenn ich auf sie klicken, führen sie zu einem neuen Fenster. Ich kann jedoch keine Operationen für dieses Fenster ausführen, da ich nicht zu diesem Fenster wechseln kann. Jede Hilfe wird geschätzt. Ich habe switchTo Methoden versucht, aber sie funktionieren nicht. Jede Hilfe wird geschätzt.Ich kann nicht auf Fenster/Popup in Firefox mit selen Webdriver in Python

Nach dem Code

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get('http://travel.aol.co.uk/2016/03/23/best-hotels-for-families-  mediterranean/') 
window_before = driver.window_handles[0] 
linkElement = driver.find_element_by_class_name('share-icon-twitter') 
linkElement.click() 
window_after = driver.window_handles[1] 
driver.switch_to_window(window_after) 
print (driver.title) 

Als ich den Titel am Ende zu drucken, zeigt nichts auf. Wenn ich aber zum alten Fenster zurückkehre und dann den Titel drucke, erscheint der richtige Titel.

Vielen Dank.

Antwort

0

Wenn Ihre Anforderung zwischen den Fenstern verschiebt, können Sie es durch switch_to_window Methode erreichen. Und auch window_handles, die helfen werden, die Fenster zu erhalten.

from selenium import webdriver 
    from selenium.webdriver.common.keys import Keys 

    driver = webdriver.Firefox() 
    driver.get(url) 
    first_window = driver.window_handles[0] 
    linkitem = driver.find_element_by_id("id") 
    linkitem.click() 
    second_window = driver.window_handles[1] 
    driver.switch_to_window(second_window) 

, wenn Sie zurück zum ersten Fenster erhalten möchten, können Sie

 driver.switch_to_window(first_window) 

Hoffnung verwenden, das hilft. Danke

+0

Hallo San, habe deinen Vorschlag ausprobiert, aber am Ende der letzten Zeile, als ich versucht habe, den Seitentitel zu drucken, habe ich nichts gedruckt. Folgendes ist der Code. –

+0

aus Selen import WebDriver von selenium.webdriver.common.keys importieren Keys driver = webdriver.Firefox() driver.get ('http://travel.aol.co.uk/2016/03/23/best -Hotels-for-Familien-mediterrane/') window_before = driver.window_handles [0] Linkelement = driver.find_element_by_class_name (' share-icon-twitter ') linkElement.click() window_after = driver.window_handles [1] driver.switch_to_window (window_after) –

+0

hii @ VishwanathRKulkarni Wie haben Sie versucht, den Seitentitel zu drucken? Ich habe versucht, den folgenden Code zu verwenden, und es funktioniert gut für mich title = driver.find_element_by_xpath (r '\ html \ head \ title'). Es hat den eigentlichen Text nicht gedruckt, kann aber den Titel finden und gibt die Element-ID aus. – San

Verwandte Themen