Dhaval Atri
Dhaval Atri

Reputation: 211

Unable to click on button which is situate on popup made by <div> using Selenium WebDriver

HTML CODE

</div>
<div class="qx-outSet" qxselectable="off" style="overflow:...>
<div class="qx-button" tabindex="4" qxselectable="off" style="overflow:...>

******************************************** I have to click on bellow OK button ****************************
<div style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis; box-sizing: border-box; position: absolute; cursor: default; -moz-user-select: none; color: rgb(26, 26, 26); font-family: Arial,"Liberation Sans",sans-serif; font-size: 14px; left: 24px; top: 3px; width: 21px; height: 16px;" qxselectable="off" qxanonymous="true">OK</div>
</div>**

<div class="qx-button" tabindex="5" qxselectable="off" style="overflow: hidden; box-sizing: border-box; position: absolute; outline: medium none; -moz-user-select: none; cursor: default; padding: 3px 9px; left: 88px; top: 9px; width: 70px; height: 24px;">
<div style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis; box-sizing: border-box; position: absolute; cursor: default; -moz-user-select: none; color: rgb(26, 26, 26); font-family: Arial,"Liberation Sans",sans-serif; font-size: 14px; left: 12px; top: 3px; width: 45px; height: 16px;" qxselectable="off" qxanonymous="true">Cancel</div>
</div>

Right now I am working to automate web application which is developed in Qooxdoo frame work (it's javaScript framework) using selenium Web Driver with TestNG.
In this I already achieve a few things but there are some pop ups which are made using nested <div> and selenium popup handler can not handle that. By using action class I can write in text area {by below mention selenium code }which is show in pop up (find the attachment) but I cannot click on the button ( OK , CANCEL).

// wd is WebDriver Object 
WebElement element = wd.findElement(By.className("qx-window")); // qx-window is class name of div in which text area is  present
Actions actions = new Actions(wd);
actions.moveToElement(element).click().perform();
Thread.sleep(5000);
// write text in text area 
wd.findElement(By.tagName("textarea")).sendKeys("TEST");

wd.findElement(By.xpath(".//*[@id='demindoRoot']/div[4]/div[2]/div[2]/div[1]")).click();  //  CODE TO CLICK ON "OK" BUTTON 

I tried to switch focus by using action class again to the div in which the buttons are present but then also I cannot.

Error Log :

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"....

Upvotes: 0

Views: 2737

Answers (1)

Andersson
Andersson

Reputation: 52665

Try following code and let me know in case of any exceptions:

wd.findElement(By.xpath("//div[text()='OK']")).click();

Upvotes: 1

Related Questions