Hi Philip,
I prefer raw Selenium WebDriver over Watir (and Capybara). I started real browser testing with Watir in 2005. I love Ruby compared to HTMLUnit (Java). One feature of Watir (classic) is particularly useful, that is, Watir.attach to an existing browser window. Big time saving!
A few years later, after I implemented this feature in my TestWise tool, raw Selenium WebDriver + RSpec has been my favourite. Note: Selenium WebDriver framework itself does not have the attach feature.
Syntax wise, here is comparison.
Watir: browser.text_field(:name, “XXX”) or browser.text_area(:id, “YYY”)
Capybara: fill_in(“XXX”, …), click_button(“YYY”)
raw Selenium WebDriver: driver.find_element(:name, “XXX”) or driver.find_element(:xpath, “…”)
Selenium has a more ‘universal’ syntax, less to remember. The readability can be achieved by POM design anyway, (https://medium.com/geekculture/maintainable-automated-test-design-d325dd13b868). I have done numerous trainings on automation, manual testers (who usually have no programming skills) learn Selenium WebDriver faster.
Selenium syntax looks more complex (longer), this can be overcome with IDE/editor features: Snippet (https://testwisely.com/testwise/docs/productivity#snippets). In TestWise, testers just need to type “dfe?” then Tab key.
For the attach feature, check out this article with video: “Attach Selenium Python Test Steps Against An Existing Browser” (https://python.plainenglish.io/attach-selenium-python-test-steps-against-an-existing-browser-4395fe8a0998). This feature was implemented for Ruby first, of course, :-)