Java 无法单击文本区域
我正在从事一个用Java编写的项目,我正在使用Selenium自动化一个过程。Java 无法单击文本区域,java,selenium,selenium-webdriver,automation,textarea,Java,Selenium,Selenium Webdriver,Automation,Textarea,我正在从事一个用Java编写的项目,我正在使用Selenium自动化一个过程。 我有这两个文本区域,我可以将我的文本发送到第一个区域,因为我可以通过id找到它 <td class="tdLeft">:</td> <td class="tdRight"> <textarea placeholder="" id="add_links" name="links[]"></textarea> </td> driver.findEl
我有这两个文本区域,我可以将我的文本发送到第一个区域,因为我可以通过
id
找到它
<td class="tdLeft">:</td>
<td class="tdRight">
<textarea placeholder="" id="add_links" name="links[]"></textarea>
</td>
driver.findElementById("add_links").sendKeys("\n");
:
driver.findElementById(“添加链接”).sendKeys(“\n”);
但还有第二个文本区域我有问题
<tr>
<td class="tdLeft">:</td>
<td class="tdRight">
<textarea name="links[]"></textarea>
</td>
</tr>
:
我怎样才能把我的文本输入到这一个呢?如果你知道textarea索引,你可以尝试以下方法
driver.findElementsByXPath("//textarea").get(1).sendKeys("\n");
对于
name
属性,有两个具有相同值的文本区域。您可以为第二个文本区域执行以下操作:
List<WebElement> linksize=null;
String arraylinks[]=null;
linksize = driver.findElements(By.name("links[]"));
int linksCount = linksize.size();
arraylinks= new String[linksCount];
for(int i=0;i<linksCount;i++)
{
arraylinks[i] = linksize.get(i).getAttribute("id");
if(arraylinks[i].isEmpty())
{
System.out.println("I am second text area"+arraylinks[i]);
linksize.get(i).sendKeys("Hello");
}
}
List linksize=null;
字符串ArrayLink[]=null;
linksize=driver.findElements(按.name(“links[]);
int linkscont=linksize.size();
arraylinks=新字符串[LinkScont];
对于(int i=0;i尝试此xpath,driver.findelelement(By.xpath(“//tr/td[2]/textarea[@]”)
您可以使用cssselector来尝试:
driver.findElement(By.cssSelector("textarea[name='links[]']"));
漫长的道路将是:
List<WebElement> txtAreas = driver.findElements(By.xpath("//textarea[name='links[]']"));
for (WebElement txtArea : txtAreas) {
if (!txtArea.getAttribute("id").equalsIgnoreCase("add_links")) {
txtArea.sendKeys("\n");
break;
}
}
WebElement txtArea = driver.findElement(By.xpath("//textarea[name='links[]' and not(@id = 'add_links')]"));
txtArea.sendKeys("\n");
我找到doubleclick,然后sendkey作为解决方案:D
Actions action = new Actions(driver);
action.moveToElement(findElement(locator)).doubleClick().build().perform();
locator.sendKeys("Text");
在第二个文本区域中添加不同的id
怎么样?或者检查selenium中是否有方法获取具有名称的元素对象。给定的选择器//tr/td[2]/textarea[@]无效或不会生成WebElement。您的解决方案只有一行,运行良好:-)谢谢,不客气。如果你真的喜欢这个答案,你可以自由投票。