Ich brauche den Link im neuen Tab mit Selenium zu öffnen.Schlüssel senden control + click in Selen mit Python Bindings
Also ist es möglich, Strg + Klick auf Element in Selenium zu öffnen, um es in neue Registerkarte zu öffnen?
Ich brauche den Link im neuen Tab mit Selenium zu öffnen.Schlüssel senden control + click in Selen mit Python Bindings
Also ist es möglich, Strg + Klick auf Element in Selenium zu öffnen, um es in neue Registerkarte zu öffnen?
Verwenden Sie ein ActionChain
mit key_down
die Strg-Taste zu drücken, und key_up
um sie zu lösen:
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('http://google.com')
element = driver.find_element_by_link_text('About')
ActionChains(driver) \
.key_down(Keys.CONTROL) \
.click(element) \
.key_up(Keys.CONTROL) \
.perform()
time.sleep(10) # Pause to allow you to inspect the browser.
driver.quit()
Unten ist, was ich für Selenium WebDriver mit Java Binding versucht habe und es funktioniert für mich. Wenn Sie die Verknüpfung in neuer Registerkarte manuell öffnen möchten, können Sie dies durch Ausführen von Kontext erreichen. Klicken Sie auf den Link und wählen Sie die Option "In neuer Registerkarte öffnen". Unten ist die Implementierung in Selenium Web-Treiber mit Java Binding.
Actions newTab= new Actions(driver);
WebElement link = driver.findElement(By.xpath("//xpath of the element"));
//Open the link in new window
newTab.contextClick(link).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();
Web-Treiber behandelt neue Registerkarte in der gleichen Weise wie das neue Fenster. Sie müssen zu einem neuen geöffneten Tab durch seinen Fensternamen wechseln.
Sie können Fensternamen verfolgen, die Ihnen helfen, zwischen Tabs zu navigieren.
Zwei mögliche Lösungen:
einen neuen Tab öffnen
self.driver = webdriver.Firefox()
self.driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
das ist die Lösung für MAC OSX. In anderen Fällen können Sie die Standard Keys.CONTROL + 't' verwenden
ein neues WebDriver
driver = webdriver.Firefox() #1st window
second_driver = webdriver.Firefox() #2nd windows
Im Anschluss arbeitet für mich Link in einem neuen Tab zu öffnen öffnen:
String link = Keys.chord(Keys.CONTROL,Keys.ENTER);
driver.findElement(By.linkText("yourlinktext")).sendKeys(link);
Der obige Code ist in Java. Sie können leicht zu Python konvertieren, nehme ich an.
Bitte fragen Sie, wenn Sie Fragen haben.
[Dieser Beitrag] (http://stackoverflow.com/a/13615802/1982962) helfen kann. –