Checkout our demo site to practice selenium https://magento.softwaretestingboard.com/

1 like 0 dislike
1.7k views
by The go-to Tester (222 points)

For the below code:
 

public class CommentTask {
    WebDriver driver;
    
    public CommentTask(WebDriver driver)
    {
        this.driver = driver;
    }
    

    public void commentOnTask()
    {
        WebDriverWait wait = new WebDriverWait(driver, 10);
        try {
             
         wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("text_div")));
            
        }
        catch(org.openqa.selenium.TimeoutException e){
            System.out.println(e.getMessage());
                
        }
        
        driver.findElement(By.className("text_div")).sendKeys("Test Comment");
    WebElement submitButton =    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id=\"comments-task-6-59ba23e91bb06\"]/div/div/div[3]/div[2]/form/button")));
    submitButton.click();
    

    }

}



Am able to enter text into the Comment field but unable to find the path of Submit button and click on it. getting below exception:
WARNING: WebDriverException thrown by findElement(By.xpath: //*[@id="comments-task-6-59ba23e91bb06"]/div/div/div[3]/div[2]/form/button)
org.openqa.selenium.WebDriverException: Failed to decode response from marionette.

Can you please help me with this

by Contributing Tester (91 points)
Thanks. Please help me on this

1 Answer

0 like 0 dislike
by Expert (572 points)

It looks like your ID, 

comments-task-6-59ba23e91bb06

is dynamically generated. I suggest you use regular expression in your XPath expression.

Something as given below.

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id=\"^comments-task*\"]/div/div/div[3]/div[2]/form/button")));

The above may not work as I just tried to give you an example. You can find regular expression by googling it out.

by Contributing Tester (91 points)
It worked with the below regular expression :
//*[contains(@id, 'comments-task')]/div/div/div[3]/div[2]/form/button

Thanks!
by Expert (572 points)
Thank you for sharing your solution!
by Expert (572 points)
I have created a new question related to your solution. It would be great if you can post your solution there.

https://softwaretestingboard.com/qna/2407/selenium-regular-expression-expression-starting-certain


This site is for software testing professionals, where you can ask all your questions and get answers from 1300+ masters of the profession. Click here to submit yours now!

1.4k questions

1.6k answers

866 comments

1.9k users

...