Я пробовал с привязками C # для браузера Chrome:
Следующий фрагмент кода просто установит значение в поле поиска
IWebElement searchInput = webDriver.FindElement(By.Name("q"));
searchInput.SendKeys("Hello");
Следующий фрагмент кода установит значение в поле поиска и также выполнит поиск
IWebElement searchInput = webDriver.FindElement(By.Name("q"));
searchInput.SendKeys($"Hello {Environment.NewLine}");
Обратите внимание на Environment.NewLine в приведенном выше коде, который эквивалентен \ n.
Из документации по Python для readline ()
f.readline () читает одну строку из файла;символ новой строки (\ n) остается в конце строки и пропускается только в последней строке файла, если файл не заканчивается новой строкой.Это делает возвращаемое значение однозначным;если f.readline () возвращает пустую строку, конец файла достигнут, в то время как пустая строка представляется как \ n, строка, содержащая только одну новую строку.
Для readlines ()
readlines () читает до EOF с использованием readline () и возвращает список, содержащий строки
Это ясно задокументировано, чтосимвол новой строки \ n остается в конце строки.В результате этого, когда sendkeys пытается написать строку, это также приведет к отправке \ n, имитирующей поиск.
Я бы попросил вас попробовать следующее и посмотреть результаты:
жестко закодированное значение
name = "Hello"
browser.find_element_by_name("q").send_keys(name)
одна строка из файла с использованием readline () вместо readlines ().Убедитесь, что вы создали новый файл, в котором вы набираете «Hello» и сохраняете его, не нажимая клавишу ввода, чтобы добавить новую строку.
name = text_file1.readline(x)
browser.find_element_by_name("q").send_keys(name)
Это должно очистить вещи.