如何使用 Python Selenium 脚本中的按钮定义触发 javascript 事件

发布于 2024-12-02 08:49:36 字数 441 浏览 1 评论 0原文

<div id="feesnav">
<div style="float: right;">
<button id="b2" class="adjustuserfees_button active" onclick="cusers(this)"/>
</

假设我想使用 python selenium 单击按钮 b2。尝试了各种 xpath 定义,但它返回找不到定位器错误

以下代码不起作用:

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

有什么建议吗?

<div id="feesnav">
<div style="float: right;">
<button id="b2" class="adjustuserfees_button active" onclick="cusers(this)"/>
</

Say I want to click on button b2 using python selenium. Tried all sorts of xpath definition and it retunrs can't find the locator error

The following code does not work:

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

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感情旳空白 2024-12-09 08:49:36

这非常简单,我认为此处详细的示例就是您所寻找的。

以下是其中详细内容的摘要。

<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>

祝你好运。

That is very simple I think the example detailed here, is what your looking for.

Here is summary of what is detailed there.

<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>

Goodluck.

街角迷惘 2024-12-09 08:49:36

是否没有 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 应该能够为您完成点击。你确定没有隐藏的重复元素吗?此外,您的代码不存在同步问题,就像您在页面加载之前尝试单击按钮等?

Isn't there a click() method or you are saying it is not working for you? If you are going the javascript route you could try something like below

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

I still don't think you would need to go JS route. Selenium should be able to do the click for you. Are you sure there are no hidden duplicate elements? Also there is no sync issue with your code, like you are trying to click on the button before even the page is loaded etc?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文