Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法单击文本区域_Java_Selenium_Selenium Webdriver_Automation_Textarea - Fatal编程技术网

Java 无法单击文本区域

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

我正在从事一个用Java编写的项目,我正在使用Selenium自动化一个过程。
我有这两个文本区域,我可以将我的文本发送到第一个区域,因为我可以通过
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。您的解决方案只有一行,运行良好:-)谢谢,不客气。如果你真的喜欢这个答案,你可以自由投票。