I had always used Selenium with Java. The Java implementations always
seem to come out first, were a little more stable and had features
other bindings did not have. In the recent past I worked at a company
who insisted on Python as the language to use for Selenium 2.0
development. So I learned Python and proceeded to create a test
automation framework. As far as Selenium went, it was fine. There were
subtle differences and as I had found in the past, features and
workarounds which existed in Java didn't exist in Python. All in all,
the issues I encountered weren't show stoppers. At any given time you
need to look at what the Java client has but hasn't been implemented
in the Python bindings yet. If these are features/workarounds you can
live without then there is no Selenium based reason to not use Python.
On the other hand, if the people coding and maintaining the test code
are familiar with the Java APIs but not Python modules, there are
things outside of Selenium which they might be able to do faster and
more effiicently in Java. For example, if I need to parse an XML file
and I know how to do it in Java but not Python, I have to spend the
time learning how to do this in Python. As a Java programmer with 15
years experience, it wasn't hard to figure out how to do things in
Python which I knew how to do in Java.
I did find as a person who has been doing software programming for 30
years and Java programming for 15 years, the tools for programming
Python were less mature than the tools for programming C# or Java. I
think in part because I was used to using an integrated development
environment (IDE) and Python programmers tended to use it as a dynamic
language. As a C, C++, Java, C# programmer I am used to programming
the code, running it, debugging it, making small changes. As a Python
programmer I believe they tend to use the interactive shell, try
various things, save the session, clean up the session. The IDE
becomes less important to a Python programmer. Having 30 years of IDE
programming could have made the transition to Python harder for me.
Whether or not it will be an issue for you and your team is something
to consider.
Darrell