2016-04-12 14 views
0

Hallo ich öffne eine Website mit Selen Webdriver von einem Tkinter GUI.I haben einen Eintrag und eine Schaltfläche in GUI wenn ich die URL in Eintrag geben und drücken Sie die Taste Webbrowser beginnt jetzt zu öffnen Ich möchte eine weitere Funktionalität hinzufügen, die, wenn ich irgendeinen Text auf dieser Webseite mit meinem Mauszeiger auswähle und einen anderen Knopf erneut auf der GUI drücke, den ausgewählten Text in einem anderen Eingabebereich der tkinter GUI anzeigen soll. Also, ist es möglich, diese Funktionalität hinzuzufügen. hier ist mein Code: -Ausführen von Javascript mit Selenium in Python (Tkinter als GUI)

url1 = Entry(top, bd =3, width = 50) 
url1.place(x=800 , y=100) 

def open(url): 
    driver = webdriver.Firefox() 
    driver.set_window_size(600, 500) 
    driver.set_window_position(300,300) 
    driver.get(url) 
    driver.implicitly_wait(20) 
    driver.execute_script("text = getSelectionText(); alert(text)") 

# submit button which is performing action on submit 
submit1 = Button(top, text="Open", width=15, bg='lightblue', command=lambda: open(url1.get())) 
submit1.place(x=1200, y=100) 
+0

Ja, ich denke, es sollte funktionieren. Hast du ein Problem damit? – Buaban

+0

ja es zeigt einen Fehler, dass getSelectionText() nicht definiert ist –

Antwort

0

Die Ursache ist Ihre Website nicht Methode hat getSelectionText(). Sie können hinzufügen und dann anrufen, siehe Code unten:

jsScript = ''' 
function getSelectionText() { 
    var text = ""; 
    if (window.getSelection) { 
     text = window.getSelection().toString(); 
    } else if (document.selection && document.selection.type != "Control") { 
     text = document.selection.createRange().text; 
    } 
    return text; 
} 

text = getSelectionText(); alert(text) 
''' 

driver.execute_script(jsScript) 
Verwandte Themen