2015-12-18 5 views
0

Я работаю над проектом, который закодирован на Java, и я использую Selenium для автоматизации процесса.
У меня эти два текстовых поля, и у меня нет проблем, чтобы отправить свой текст в первую область, потому что я могу найти его по id.Не удается щелкнуть textarea

<td class="tdLeft">:</td> 
<td class="tdRight"> 
<textarea placeholder="" id="add_links" name="links[]"></textarea> 
</td> 

driver.findElementById("add_links").sendKeys("\n"); 

Но есть вторая текстовая область, с которой у меня проблемы.

<tr> 
<td class="tdLeft">:</td> 
<td class="tdRight"> 
<textarea name="links[]"></textarea> 
</td> 
</tr> 

Как я могу получить свой текст в этом?

+0

как AB добавив другой «id» во вторую текстовую область. – Vishrant

+0

или проверьте, есть ли способ в селене получить объекты с именем. – Vishrant

ответ

0

Долгий путь будет:

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"); 
0

Если вы знаете индекс текстовых вы можете попробовать следующий способом,

driver.findElementsByXPath("//textarea").get(1).sendKeys("\n"); 
+0

Ваше решение - одна строка и отлично работает. :-) спасибо – Occ

+0

. Добро пожаловать. Вы можете свободно продвигать, если вам действительно нравится этот ответ. – dullpointer

0

У вас есть 2 с тем же текстовыми областями значений для 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"); 


    } 

    } 

Здесь мы получаем text area, имеющие общие атрибуты, зацикливание над ними и отправки текста только, что один, не имеющих id. Он работает для меня. Попробуйте.

0

Попробуйте XPath, driver.findElement(By.xpath("//tr/td[2]/textarea[@]"))

+0

Данный селектор // tr/td [2]/textarea [@] либо недействителен, либо не приводит к использованию WebElement. – Occ

0

Вы можете попробовать с помощью cssSelectors:

driver.findElement(By.cssSelector("textarea[name='links[]']")); 
Смежные вопросы