PeterFonteneau
PeterFonteneau

Reputation: 55

Unable to locate element with relative XPATH or CSS selector, but absolute XPATH is located and clickable in python selenium

I'm struggling with locating an element to click. Here's what I am working with:

enter image description here

I'm trying to locate the element with the a href link. I've tried the following:

driver.find_element(By.CSS_SELECTOR,'a[href="/collections/e-coated-kettlebells/products/28kg-kettlebell"]').click()

driver.find_element(By.XPATH,'//div//a[@href="/collections/e-coated-kettlebells/products/28kg-kettlebell"]').click()

driver.find_element(By.XPATH,'//a[@href="/collections/e-coated-kettlebells/products/28kg-kettlebell"]parent::div').click()

The absolute XPATH is the only thing that works

driver.find_element(By.XPATH,'//*[@id="shopify-section-collection-template"]/div/div/div/div[25]/a').click()

The a href contains the 28kg element that I need to use. What am I missing in writing this CSS / XPATH?

Thanks!

enter link description here

Is the website

Upvotes: 0

Views: 205

Answers (1)

Prophet
Prophet

Reputation: 33351

These are unique locators for that element.
XPath:

"//div/a[contains(@href,'28kg-kettlebell')]"

CSS Selector:

"div>a[href*='28kg-kettlebell']"

Inside Selenium methods it can be as following:
XPath:

driver.find_element(By.XPATH, "//div/a[contains(@href,'28kg-kettlebell')]").click()

CSS Selector:

driver.find_element(By.CSS_SELECTOR, "div>a[href*='28kg-kettlebell']").click()

Upvotes: 1

Related Questions