【问题标题】:Passing selenium commands inside a list在列表中传递 selenium 命令
【发布时间】:2014-02-18 08:33:33
【问题描述】:

假设我有一个列表,其中包含 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

由于 i 在这里是一个字符串,python 不接受它。有什么解决办法吗??

【问题讨论】:

    标签: python selenium-webdriver


    【解决方案1】:

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

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

    应该可以解决问题。

    【讨论】:

      【解决方案2】:

      制作一个dict列表并使用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'] )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-15
        • 1970-01-01
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多