2016-10-12 13 views
0

Я хотел бы иметь возможность автоматически заполнить following test. После каждой фразы вы можете выбрать либо Eens (я согласен), либо Oneens (я не согласен). Я использую RSelenium для этого.Элемент щелчка RSelenium возвращает NULL

Загрузка моего браузера, и первая фраза не представляет никаких проблем. Однако я не могу выбрать ни зеленое, ни красное поле. Я использую следующий код:

choice_xpath <- "//*[contains(.,'Eens')]" 

choice <- driver$findElement(using = "xpath", 
           choice_xpath) 

choice$clickElement() 

При выполнении кода выше NULL возвращается. Поскольку ошибка «элемент не найдена» возвращается, я думаю, что я нажимаю на элемент, который существует, но не может быть нажат. Но я не понимаю, какой элемент нажать, если это так.

Я думаю, что это HTML, необходимые для понимания проблемы:

<script type="text/template" id="statements-tpl"></script> 
<script type="text/template" id="statement-tpl"> 
<span class="prev-button"><span>&lt;</span></span> 
<div class="copy"> 
<div class="copy-inner">{{ copy }}</div> </div> 
<div class="button-wrap"> 
<div class="button-container"> 
<div class="button button-1"> 
</div> 
</div> 

<div class="button-container"> 
<div class="button button-0"></div> 
</div> 

<div class="button-container no-opinion"> 
<div class="button button-2"></div> 
</div> 
</div> 

<span class="next-button"><span>&gt;</span></span> 
</script> 

<script type="text/template" id="button-tpl"> 
<div class="button-inner-wrapper"> 
<div class="button-inner{{ selected ? ' selected' : '' }}"> 
<div class="prefix">Jouw antwoord:</div> 
<div class="copy"> {{% if (type == 2) { %}} Geen mening {{% } else if (type == 0) { %}} Oneens {{% } else { %}} Eens {{% } %}} </div> 
<div class="error-tooltip"></div> 
</div> 
</div> 
</script> 
+0

Не могли бы вы поделиться соответствующие HTML, а ?? –

+0

Соответствующий HTML - это ссылка в моем первоначальном сообщении, извините, если это было неясно. Итак, исходный код этой ссылки (http://www.educatievestemtest.be/regionaal/#stelling/1). – 1053Inator

+0

На этот раз я не могу просмотреть источник страницы, поэтому я говорю, поделитесь соответствующим HTML здесь, если вы действительно хотите быстрое решение. Спасибо –

ответ

0

Try используя ниже локатора, чтобы найти подходящий элемент: -

  • Чтобы найти EENS(Agree) кнопку попробовать, как: -

    eens <- driver$findElement(using = "css selector", "div.button.button-1") 
    eens$clickElement() 
    
  • Для поиска ONEENS(DisAgree) кнопка попробуйте: -

    oneens <- driver$findElement(using = "css selector", "div.button.button-2") 
    oneens$clickElement() 
    
  • Чтобы найти GEEN MENING(No Opinion) кнопку попробовать, как: -

    geenmeening <- driver$findElement(using = "css selector", "div.button.button-0") 
    geenmeening$clickElement() 
    
+1

Если я делаю это для первой страницы, он отлично работает. Однако, когда я снова выполняю тот же код для страницы, сгенерированной после первого выполнения, я получаю следующую ошибку: «Команда элемента не может быть завершена, потому что элемент не отображается на странице». – 1053Inator

+0

Тогда, вероятно, вы должны реализовать некоторые ожидания до тех пор, пока элемент не станет видимым и не позволит щелкнуть. Спасибо –

+0

@ 1053Инатор Используйте 'sys.sleep (10)' to hard code wait или use 'driver $ setImplicitWaitTimeout (1000)' для неявного ожидания видимости элемента и включения щелчка .. –