I wanted to click a link in facebook group post which has href attribute as "#" but when we click on it that href attribute will automatically change to particular URL so I just wanted to click on link so that it will open in new tab.
Sorry I don't have any code to explain this scenario.
CodePudding user response:
Since you didn't provide nor code nor a link to that page I answered it with some example code on how to open a link in a new tab:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
actions = ActionChains(driver)
driver.get("https://stackoverflow.com/")
link = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.XPATH, "//a[@class='s-navigation--item js-gps-track']")))
actions.key_down(Keys.CONTROL)
actions.click(on_element=link)
actions.perform()
Anyway this is it: you use ActionChains to control click (open in new tab) the link. With that you can perform every complex operation. A list of available actions/methods can be found here.
EDIT: Ah, if then (I guess) you want to move from a tab to another you can easily do it like this:
tabs = driver.window_handles
driver.switch_to.window(tabs[1])
Where tabs
is a zero-based list (tabs[0] is the first tab, tabs[1] the second and so on...)