2016-05-10 4 views
2

Я работаю с вебом-страницей, которая имеет ряд яваскрипт кнопок, которые написаны так:Как настроить элемент javascript на его атрибут onclick через Selenium?

<a href="javascript:;" onclick="addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)" class="btn btn-lblue pull-right"> 

Селен может выполнить JavaScript, но я не совсем уверен, как отформатировать яваскрипт запроса, чтобы вызвать индивидуальные кнопки покупки. Я пробовал:

driver.execute_script("document.getElementById("test").onclick = "addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)").click() 

, но это дает мне ошибку Message: document.getElementById(...) is null. Как я могу изменить то, что я пытался заставить его работать?

+0

Я думал, используя поддельные ссылки вышел с браузером нюхают. В чем смысл 'href =" javascript:; "' когда 3 класса уже делают для стилизации? – RobG

+0

Не писал сайт, о котором идет речь, поэтому я не уверен, почему они это сделали. – n1c9

ответ

2

Это потому, что вы не добавили идентификатор test в свой тег <a>. Также, как правило, нецелесообразно искать элемент, основанный на значении его обработчика onclick.

Исправлен код:

<a href="javascript:;" id="test" onclick="addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)" class="btn btn-lblue pull-right"> 

Кроме того, вам нужно переключить один из ваших " для ' в driver.execute сценария, потому что каждый " заканчивает предыдущую строку.

Пример:

driver.execute_script('document.getElementById("test"),$(this),0)').click() 
Смежные вопросы