When I execute the following code:
driver.findElement(By.className(\"qview-product-name\")).click();
I get the following error
There are a couple of things you need to take care of:
By.className("qview-product-name") refers to the parent tag and perhaps is not the desired element you want to click. Rather your usecase must be to click on the Title element.As per best practices, while invoking click() you need to induce you need to induce WebDriverWait for the elementToBeClickable() and you can use either of the following Locator Strategies:
linkText:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("Title"))).click();
cssSelector:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("dd.qview-product-name a[href='Link_here']"))).click();
xpath:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//dd[@class='qview-product-name']//a[@href='Link_here' and text()='Title']"))).click();
Ensure that:
@Test as non-root user.