5

There is a similar question concerning Watir-WebDriver.

What is the best way to do Ctrl+click on a DOM element?

Randomblue
  • 471
  • 2
  • 6
  • 12

4 Answers4

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). What element should I choose here? – Randomblue Jan 23 '12 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? –  Jan 24 '12 at 02:11
  • Well the element to do the click on is determined. But there is no specific element listening to the "Ctrl" event. – Randomblue Jan 24 '12 at 09: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. –  Jan 24 '12 at 15:13
0

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));
0

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

Keith Tyler
  • 299
  • 3
  • 9
-1

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().

dzieciou
  • 10,512
  • 9
  • 47
  • 100