通过Selenium在Python中运行带有变量的execute_script

时间:2019-05-19 06:13:51

标签: javascript python selenium

我正在尝试执行一个小的Python脚本,该脚本在firefox浏览器中通过硒运行一个函数。

现在我使用:

pageurl = 'https://www.google.com'
driver.get(pageurl)
driver.execute_script("alert('hi')")

实际上在firefox中运行警报框并显示“ hi”。

我希望能够让警报输出/运行一个变量。

像这样:

pageurl = 'https://www.google.com'
driver.get(pageurl)
keyy = 'blabla'
driver.execute_script("alert(keyy)")

但是我没有运行警报命令,而是出现了一个错误。

Traceback (most recent call last):
  File "C:\Users\Jeroen\AppData\Local\Programs\Python\Python37-32\test.py", line 29, in <module>
    driver.execute_script("alert(keyy)")
  File "C:\Users\Jeroen\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 636, in execute_script
    'args': converted_args})['value']
  File "C:\Users\Jeroen\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Jeroen\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: ReferenceError: keyy is not defined

我应该如何写driver.execute_script("alert(keyy)")

1 个答案:

答案 0 :(得分:0)

您可以使用字符串格式将值放在字符串中:

script = "alert('{}')".format(keyy)
driver.execute_script(script)