我是selenium的新手,我无法弄清楚如何使用Python和Selenium web驱动程序自动执行以下语句。这是一个可点击的文本元素“我的按钮标签”。
<a class="class_a" href="javascript:f_func(46)" id="func46" ondrag="window.event.returnValue=false" onmousedown="return false;">My Button Label </a>
我试过这个:
driver.execute_script("f_func()", 46)
和这个
driver.execute_script("f_func(46)")
但最终以
结束selenium.common.exceptions.WebDriverException: Message: u'data[i] is undefined' ;
指向js内的var
深。
模拟单击该元素并调用脚本的正确方法是什么,将46作为参数传入?
编辑:我忘记添加我尝试的第一件事
driver.find_element_by_xx().click()
也失败了。下面的ActionChain Api是唯一对我有用的东西。
答案 0 :(得分:0)
要调用脚本,您是否尝试过发送参数?
driver.execute_script("f_func(arguments[0])", 46)
但是点击第一名出了什么问题?如果它不适合您,请尝试使用ActionChains
。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# your code here
# then
ActionChains(driver).click(driver.find_element_by_id('func46')).perform()