2011-11-01 78 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(); 
相关问题