The main weakness of nonparametric tests is that they are less powerful than parametric tests. They are less likely to reject the null hypothesis when it is false. Chi Square is employed to test the difference between an actual sample and another hypothetical or previously established distribution such as that which may be expected due to chance or probability. Chi Square can also be used to test differences between two or more actual samples. How to run such analysis in SPSS available here:
Another criterion is the sample size you are using? If the data set is not large you may be better off using a purely non-parametric test. In this way you will avoid any questions as to the validity of using Chi Square on a small non-parametric set.
In a 2x2 contingency table if you ask for a chi-square test in SPSS (ANALIZE, DESCRIPTIVES, CONTINGENCY TABLE), it also gives you Fisher's Exact Test. If the sample is too small and expected frequencies are smaller than 1 or more than 20% of expected frequencies are under 5, that test is better suited.