如果我不使用交互式shell

时间:2016-02-12 09:21:38

标签: python

我有一个名为searchMachine.py的文章,如果我直接从IDLE(F5 ..)运行它可以正常运行,但如果我只需单击searchMachine.py就可以运行它,直到某些点和然后我收到一个错误。见下文。 感谢你给我的任何意见。 顺便说一句,任何想法如何让这个chrome在沉默中工作?例如最小化?

    from selenium import webdriver
    from selenium.webdriver.support.ui import Select

    print('Please type the machine name.')
    machinename = input()
    print('')
    print('Thank you.')
    print('')
    print('Results will show below.')
    print('')

    path_to_chromedriver = 'C:\python34\chromedriver\chromedriver.exe' # change path as needed
    browser = webdriver.Chrome(executable_path = path_to_chromedriver)
    url = 'http://app.corp'
    browser.get(url)



    browser.find_element_by_xpath("/html/body/div[4]/form/table[1]/tbody/tr/td[5]/input[1]").send_keys(machinename)

    browser.find_element_by_css_selector('input[type=\"submit\"]').click() # working to press submit

    xpath = '/html/body/div[4]/form/center[2]/table/thead'
    for i in browser.find_elements_by_xpath(xpath):
        print (i.text)
    xpath = '/html/body/div[4]/form/center[2]/table/tbody/tr'
    for i in browser.find_elements_by_xpath(xpath):
        print (i.text)

    browser.close() 

import os
os.system("c:/code/close_chrome_driver.bat")

错误是:

enter image description here

1 个答案:

答案 0 :(得分:0)

发生此错误是因为无法将unicode字符U+25BE BLACK DOWN-POINTING SMALL TRIANGLE写入Windows控制台窗口,因为它与CP850字符集不匹配>您的 Windows控制台。

现在,当Python无法打印正确的值时,它会大声嘶叫。您可以将PYTHONIOENCODING环境变量设置为cp850:ignore,这会使Python进程忽略错误;或者您可以打印到stderr而不是stdout,这会使用backslashescape错误处理。