Selenium (Python) пропускает действие клавиатуры - PullRequest
0 голосов
/ 08 ноября 2019

Итак, я начал изучать селен (python) около двух недель назад, и теперь я делаю свой собственный простой проект. Он принимает ввод от пользователя (имя веб-сайта или случайную тему), затем вводит ввод пользователя в строку поиска, затем нажимает на первую заданную ссылку и очищает весь текст (абзацы) веб-сайта исохраняет его в текстовом файле. Я должен упомянуть, что раньше я запускал этот скрипт на ноутбуке с Windows, а сейчас использую MacBook Pro. На компьютере с Windows эта проблема не возникала, но на MacBook селен, кажется, пропускает elem.send_keys (Keys.RETURN) и всегда щелкает ссылку gmail, поэтому в основном он не ждет, пока произойдет поиск. Честно говоря, я не знаю, как решить эту проблему. Я пытался найти похожие проблемы в Интернете, но ничего не нашел. Вот часть кода, где возникает проблема ..


from selenium import webdriver
from selenium.webdriver.common.keys import Keys

subjectName = str(input("Enter the name of the subject: "))

driver = webdriver.Safari()
driver.get("https://www.google.com")

elem = driver.find_element_by_name("q")
elem.send_keys(subjectName)
elem.send_keys(Keys.RETURN)

results = driver.find_elements_by_tag_name(
"a")  # finds webresults
results[0].click()  # clicks the first one

1 Ответ

0 голосов
/ 08 ноября 2019

Добавить явное ожидание:

elem = driver.find_element_by_name("q")
element = WebDriverWait(driver, 10).until(EC.visibility_of(("elem")))
elem.send_keys(subjectName)
elem.send_keys(Keys.RETURN)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...