Как вызвать событие javascript с помощью этого определения кнопки из скрипта Python Selenium - PullRequest
1 голос
/ 31 августа 2011
<div id="feesnav">
<div style="float: right;">
<button id="b2" class="adjustuserfees_button active" onclick="cusers(this)"/>
</

Скажем, я хочу нажать на кнопку b2, используя python selenium.Перепробовал все виды определения xpath, и он повторителей не может найти ошибку локатора

Следующий код не работает:

  self.sel.fire_event("//div[@id='feesnav']//button[@id='b2']", 'click')
  or  self.sel.mouse_down("//div[@id='feesnav']//button[@id='b2']")

Есть предложения?

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Это очень просто, я думаю, что пример, детализированный здесь , это то, что вы ищете.

Вот краткое изложение того, что там подробно описано.

<html>
<head>
<script type="text/javascript">
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
</head>

<body>

<h1>My First Web Page</h1>

<p id="demo"></p>

<button type="button" onclick="displayDate()">Display Date</button>

</body>
</html>

Гудлак.

0 голосов
/ 01 сентября 2011

Нет ли метода click () или вы говорите, что он не работает для вас? Если вы идете по маршруту Javascript, вы можете попробовать что-то вроде ниже

String myScript="var element= document.getElementById('b2');";
if(browser is not IE) //add some logic here
  myScript=myScript+"var evObj = document.createEvent('MouseEvents');evObj.initEvent('click',true,true);element.dispatchEvent(evObj);";
else
  myScript=myScript+"element.fireEvent('onclick');

selenium.getEval(myScript);

Я все еще не думаю, что вам нужно будет идти по маршруту JS. Selenium должен быть в состоянии сделать за вас клик. Вы уверены, что нет скрытых дублирующих элементов? Также нет проблемы синхронизации с вашим кодом, например, вы пытаетесь нажать на кнопку, прежде чем даже страница будет загружена и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...