在列表中传递selenium命令

时间:2014-02-18 08:33:33

标签: python selenium-webdriver

假设我有一个列表,其中包含像

这样的selenium命令
browser = webdriver.Firefox()

lis = ['browser.find_element_by_id(“gbqfba”)。click()','browser.find_element_by_id(“signup_btn_topPanel”)。click()']

尝试将命令发送为,

for i in lis:

    driver.i

因为我在这里是一个字符串,所以python不接受它。任何解决方案??

2 个答案:

答案 0 :(得分:1)

您可以使用exec命令以python命令运行字符串:

for i in lis:
   exec 'driver.' + i

应该这样做。

答案 1 :(得分:0)

制作一个dicts列表并使用getattr()

可能更具可读性

例如:

cmd_dict = { 'method' : 'find_element_by_css_selector', 'args' : ('div.btn',) }
method_to_run = getattr( browser, cmd_dict['method'] )
method_to_run( *cmd_dict['args'] )