I've been learning automation with C# for some weeks now, though I'm progressing in a slow manner. I'm currently trying to do a certain test using a mock page (automationexercise.com).
The page mocks an E-commerce.
I want to capture the products listed in the main page so I can store their properties and test them.
The original html from the page looks like this:
There is a div, which contains 34 divs with the class class="col-sm-4"
and inside each one of those we have a content like this:
I want to capture the content of the paragraph that appears in the picture that is present in each one of those 34 divs containing the product name.
I wrote this code expecting it to print the name of each product but it returns a selector error:
IList<IWebElement> productos = driver.FindElements(By.CssSelector("div[class=col-sm-4]"));
foreach (IWebElement element in productos)
{
IWebElement asd = element.FindElement(By.XPath("./div[1]/div[1]/div[1]/p[1]"));
TestContext.Progress.WriteLine(asd.Text);
}
I have also tried some more variations, none had any success at all except the following Xpath which returns the content of the paragraph in the firs product 34 times.
//div[@class='productinfo text-center']//p
Can someone please help me understand the correct way to build the selector (be it xpath or css selector) in this case?