1. 程式人生 > >selenium2webdriver對Wrapped元素的click()不起作用怎麼辦?

selenium2webdriver對Wrapped元素的click()不起作用怎麼辦?

這個問題困擾了我快一天的時間,我遇到的問題:WebElement是一個Wrapped的span元素,點選後出現一個選單。這個span元素可以用xpath定位到,但是element.click()就是不起作用,

google了下,似乎有很多網友反映,應該是Selenium2.0的bug。針對我個人的問題,我嘗試瞭如下的workaround:

1. 改變xpath的表示式,避開查詢直接用span定位(我之前是直接用//span[@class='....']),現在改為先定位table/tbody//tr[...]//td[...]//span[@...]. 事實證明這樣可以,也是預期的效果;

2. 用javaScript模擬手工操作瀏覽器,例如:

        WebElement eAction = driver.findElement(By.xpath(getStringByKeyName("MenuAction")));
        ((JavascriptExecutor)driver).executeScript("arguments[0].click();", eAction);

這裡有一個小問題,彈出的menu不知道為什麼會出現在頁面的最左上方,而不是在點選的元素的下方。