2011-11-01 77 views
0

將textarea包裝在父div元素中。 只有父級鼠標懸停時,此textarea纔可見。Selenium 2 Webdriver可以同時處理兩個webelements嗎?

我嘗試以下:

WebElement PR = driver.findElement(父);
動作構建器=新動作(驅動程序);

builder.moveToElement(pr).peform();
driver.findElement(textarea).sendKeys(text);

但是,當webdriver開始尋找孩子textarea它失去了對父母的重點。 Hav做一些事情時,可以承擔發送文本到子元素,當父母停留徘徊。可能嗎?

回答

0

你將不得不使用javascript - 我不認爲webdriver一次可以處理多個元素。
您的選擇,因爲我看到他們:

  1. 你可以嘗試修改與JavaScript textarea的「風格」屬性,迫使它是可見的,然後與它進行交互的webdriver的通常的方式(即的SendKeys) 。

  2. 設置通過javascript textarea的文本,注意,你不會觸發任何事件,因爲你沒有實際鍵入任何東西。

+0

謝謝,第一個變體工作! (「document.getElementById('」+ id +「').style.display ='block';」); –

0

您或許可以使用操作API做兩件事,懸停在父母身上,然後像下面那樣輸入孩子。

Actions builder = new Actions(driver);  
WebElement parent = driver.findElement(By.id("parent")); 
WebElement child = driver.findElement(By.id("child")); 
Action hoverAndType = builder.moveToElement(parent) 
         .sendKeys(child, "Text to type in the child") 
         .build(); 
hoverAndType.perform(); 
相關問題