2016-11-16 13 views
0

Ich arbeite an Python Selenium phantomjs Skript, wo ich auf eine Schaltfläche (Content Store) klicken muss und dann ein neues Fenster im Browser öffnen, ich möchte mein Skript die Umleitung und springen folgen In den neu geöffneten Fenster ..ich mit find_element_by_tag_name bereits versucht haben, ist elemnt_by_id und find_element_xpath ..aber nichts zu finden, hier zu arbeitenfolgen Umleitung mit Python Selen Phantomjs Skript

ist der Körper dieser Taste ist

<a href="/performAction?view=contentStore" id="contentStoreLiId" title="Content Store" class="TabImg" style="" onclick="return linkOnclick(this)">Content Store</a> 

hier mein Beispielcode, die ich arbeite auf

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

user_agent = ("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) " +"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36") 
dcap = dict(DesiredCapabilities.PHANTOMJS) 

dcap["phantomjs.page.settings.userAgent"] = user_agent 
driver = webdriver.PhantomJS(desired_capabilities=dcap,service_args=['--ignore-ssl-errors=true']) 
driver.set_window_size(1120, 550) 
driver.get('https://abc/performAction?view=userLogin') 
driver.save_screenshot('/ab/login.png') 
driver.find_elements_by_id('userName')[0].send_keys('abc123') 
driver.save_screenshot('/ab/username.png') 
driver.find_elements_by_id('password')[0].send_keys('abc') 
driver.save_screenshot('/ab/userpwd.png') 
driver.find_element_by_class_name('submitbtn').click() 
driver.save_screenshot('/ab/Home.png') 
link = driver.find_element_by_xpath('.//*[@id="contentStoreLiId"]') 
print link 
link.click() 
driver.save_screenshot(/ab/CS0.png') 
driver.quit() 
+0

Clarify, was du meinst "nicht funktioniert" und hinzufügen Ausnahmeprotokoll, wenn Sie eine – Andersson

+0

HALLO ich gebe keinen Fehler ... aber es tut nichts .. nur bleibt auf der gleichen Seite .. wo ich will springen auf die neuen neu geöffneten Fenster ... und beginnen, Aktionen dort drüben – kattaprasanth

Antwort

1

Wenn Sie auf die Schaltfläche klicken, um eine neue Registerkarte zu öffnen, müssen Sie den Treiberkontext auf diese Schaltfläche umstellen. Ansonsten ist der Treiber immer noch auf der ersten Seite, obwohl die neue Registerkarte geöffnet ist. Nach dem Klicken Sie den Kontext wie folgt wechseln:

link = driver.find_element_by_xpath('.//*[@id="contentStoreLiId"]') 
print link 
link.click() 
driver.switch_to_window(driver.window_handles[-1]) 

driver.window_handles die Liste der Kontexte (Tabs) gibt verfügbar, werden neue geöffnete Tab in den letzten Index sein damit letzten Zusammenhang mit negativen Indizierung Kommissionierung.

+0

Hey @dejavu_cmd_delt .. danke für die Antwort nach der Befolgung Ihrer Vorschläge ..it arbeitet jetzt ... vielen Dank .. – kattaprasanth

+0

Wenn es dann funktioniert bitte tun akzeptiere die Antwort, damit andere wissen, dass diese Frage beantwortet wurde. – falloutcoder

+0

Sicher..vergessen, das zu tun ... – kattaprasanth