For years I have used driver.find_element_by_id('foo'). Company did a computer refresh and the newer version (4.6) doesn't recognize that syntax. It wants be to use driver.find_element(By.ID, 'foo').
However I either get the error Undefined name 'By' or I get positional argument follows keyword argument. This happens even if I literally copy and paste the sample usage code within Spyder. The parser flags it before I even run anything.