I've tried to transfer my selenium code into seleniumbase however I'm receiving "Message: invalid argument: invalid locator" when I try to chain locators.
seleniumbase code:
def get_products(self, sb):
return sb.find_elements("//div[@class='card h-100']")
products = shop_page.get_products(sb)
print(len(products)) # 4
if len(products) > 0:
for product in products:
print(product)
if product.find_element("div/h4/a").text == 'Blackberry': # this line causes error
return ShopPage.add_to_cart(product)
I've been using locators chaining in raw selenium and it worked fine.
def get_products(self):
return self.driver.find_elements(By.XPATH, "//div[@class='card h-100']")
def add_blueberry(products):
if len(products) > 0:
for product in products:
if product.find_element(By.XPATH, "div/h4/a").text == 'Blackberry':
return ShopPage.add_to_cart(product)
else:
raise Exception("No products found!")