There is a similar question concerning Watir-WebDriver.
What is the best way to do Ctrl+click on a DOM element?
4 Answers 4
A Google search of "webdriver ctrl click" turned up this result:
Ctrl+click requires three actions: a send_keys action to press the CTRL key, then a click action, and then another send_keys action to release the CTRL key.
-
Thanks. What I'm confused about is that
send_keys
is done with respect to an element (i.e.element.send_keys
). Whatelement
should I choose here?Randomblue– Randomblue2012年01月23日 17:17:04 +00:00Commented Jan 23, 2012 at 17:17 -
The wording of the original question suggests you already have an element in mind. Are you asking how to identify that element to Webdriver?user246– user2462012年01月24日 02:11:16 +00:00Commented Jan 24, 2012 at 2:11
-
Well the element to do the click on is determined. But there is no specific element listening to the "Ctrl" event.Randomblue– Randomblue2012年01月24日 09:11:48 +00:00Commented Jan 24, 2012 at 9:11
-
The answer may depend upon which event propagation model you use, but I believe you can direct the CTRL key press/release to the body element.user246– user2462012年01月24日 15:13:08 +00:00Commented Jan 24, 2012 at 15:13
for clicking on the link which expected to be opened from new tab use this
WebDriver driver = new ChromeDriver();
driver.get("https://www.yourSite.com");
WebElement element=driver.findElement(By.xpath("path_to_link"));
Actions actions = new Actions(driver);
actions.keyDown(Keys.LEFT_CONTROL)
.click(element)
.keyUp(Keys.LEFT_CONTROL)
.build()
.perform();
ArrayList<String> tab = new ArrayList<>(driver.getWindowHandles());
driver.switchTo().window(tab.get(1));
I think your best bet is to use Actions which is described here:
https://stackoverflow.com/questions/17756532/how-to-hold-key-down-with-selenium
You will want to execute the key_down action (for the CONTROL key), then the click action, then the key_up action.
The key codes for non-letter keys are listed here: https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains
The element is nothing but the variable to find the properties of the object so we are using WebElement to find it
WebElement obj = findElement(By.Xpath("")).click();
obj.sendkeys("xxxxx");
If you guys want to click submit button you can use code obi.submit()
. This code navigates to the next page. It acts as the button click()
.