Andy
Andy

Reputation: 541

Clicking Custom Element using Selenium Python

I am trying to click what seems to be a custom element on a webpage. I have tried various methods but I cannot get it to work.

The element is circled in this screenshot:

enter image description here

And can be found here. The element can be accessed by clicking one of the boxes in the grid.

Here are some of the things I have tried to access it:

driver.find_element_by_xpath("//div[@class='_2S_LCT']")

driver.find_element_by_xpath("//*[@id='ew--26832009171']")

Is the element inaccessible or is there a way of clicking on it?

Upvotes: 0

Views: 932

Answers (2)

cruisepandey
cruisepandey

Reputation: 29362

There are basically 4 ways to click in Selenium.

I will use this xpath

//input[@type='checkbox'][contains(@id,'ew--')]

Please check in the dev tools (Google chrome) if we have unique entry in HTML DOM or not.

Steps to check:

Press F12 in Chrome -> go to element section -> do a CTRL + F -> then paste the xpath and see, if your desired element is getting highlighted with 1/1 matching node.

Code trial 1:

time.sleep(5)
driver.find_element_by_xpath("//input[@type='checkbox'][contains(@id,'ew--')]").click()

Code trial 2:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@type='checkbox'][contains(@id,'ew--')]"))).click()

Code trial 3:

time.sleep(5)
button = driver.find_element_by_xpath("//input[@type='checkbox'][contains(@id,'ew--')]")
driver.execute_script("arguments[0].click();", button)

Code trial 4:

time.sleep(5)
button = driver.find_element_by_xpath("//input[@type='checkbox'][contains(@id,'ew--')]")
ActionChains(driver).move_to_element(button).click().perform()

Imports:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains

Upvotes: -1

Ronan
Ronan

Reputation: 106

To get XPath of an element on website page, you can right click on the HTML element in inspector and in the menu Copy, you will be able to Copy full XPath.

Copy full XPath on Chrome

Upvotes: 3

Related Questions