The screen is not navigating even the click() method is executed successfully in mobile web app using selenium web driver

谁说胖子不能爱 提交于 2019-12-11 11:39:30

问题


I was trying to click a button on my mobile web app, using selenium web driver. The button is located, the text over the button can be derived and even the click event is performing well. But the navigation doesn't occur.

I tried with Click() method, sendKeys() method and also with script executor. But couldn't process further on.

CODE:

public class TestWeb
{  

    WebDriver driver; 

    private Selenium selenium;   

    @Before
    public void setUp() throws Exception {
      driver = new IPhoneDriver();
      driver.get("http://10.5.95.25/mobilebanking");       
    }

    @Test
    public void TC() throws Exception  { 
        System.out.println("page 1");
        Thread.sleep(5000);
        WebElement editbtn1 = driver.findElement(By.id("ext-comp-1018"));
        String s1 = editbtn1.getText();
        System.out.println(s1);
        editbtn1.click();
        editbtn1.sendKeys(Keys.ENTER);
        ((JavascriptExecutor)driver).executeScript("arguments[0].click;", editbtn1); 

        System.out.println("ok");
    }

@After
    public void tearDown() throws Exception {
         System.out.println("*******Execution Over***********");
    }
}

I tried click, sendKeys and ScriptExecutor separately and also combined. It is executing without any error but the navigation doesn't occur.

Does anybody can help me with some other ways to perform click function on the button?


Ram


回答1:


This may not be your issue but I noticed "ext-comp-" and guess you are using extjs.

I'm using GXT and while finding by id worked for many things, on some submit buttons it didn't.

I had to use firebug in firefox to locate the element and copy the xpath. Then I could click the element by

driver.findElement(By.xpath("//div[@id='LOGIN_SUBMIT']/div/table/tbody/tr[2]/td[2]/div/div/table/tbody/tr/td/div")).click();  // worked

It was failing silently for me too. My submit button has the id of LOGIN_SUBMIT so I don't know why the following failed but ....

driver.findElement(By.id("LOGIN_SUBMIT")).click();//failed  

Edit:

Here is an exact example (case 1 of 2):

WebDriverWait wait = new WebDriverWait(driver, 30);
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='gwt-debug-LOGIN_SUBMIT']")));
    //wait.until(ExpectedConditions.elementToBeClickable((By.id("gwt-debug-LOGIN_SUBMIT"))));  <!-- id works as well

OK so the element is found. It will timeout and throw an exception if it is not.

Still, the following fails (under firefox, works with chrome) with no error and the page does not navigate.

driver.findElement(By.xpath("//div[@id='gwt-debug-LOGIN_SUBMIT']")).click();
//driver.findElement(By.id("gwt-debug-LOGIN_SUBMIT")).click(); <-- fails too 

What I have to do is:

driver.findElement(By.xpath("//div[@id='gwt-debug-LOGIN_SUBMIT']/div/table/tbody/tr[2]/td[2]/div/div/table/tbody/tr/td/div")).click();

So my experience was that even if I found the element with xpath, clicking failed unless I used a complete xpath.

Here is another exact example (case 2 of 2):

I can find an element like so:

WebElement we = driver.findElement(By.xpath("//*[@id=\"text" + i + "\"]"));

I know I have found it because I can see the text via:

 we.getText();

Still selecting by the path I found it fails.

//get outta town man the following fails
driver.findElement(By.xpath("//*[@id=\"text" + i + "\"]")).click();

In this case there is not more explicit xpath to try as in case 1 What I had to do was use css:

//bingo baby works fine
driver.findElement(By.cssSelector("div#text" + i + ".myChoices")).click();

Actually, I obtained the css path via firebug than shortened it.

//this is what I recieved
html.ext-strict body.ext-gecko div#x-auto-0.x-component div#x-auto-1.x-component div#x-auto-3..myBlank div#choicePanel1.myBlank div.x-box-inner div#text3.myChoices  //text3 is the id of the element I wanted to select

Whether or not you can figure out your needed xpaths and css selectors, I don't know, but I believe I experienced exactly what you did.



来源:https://stackoverflow.com/questions/11341483/the-screen-is-not-navigating-even-the-click-method-is-executed-successfully-in

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!