Установите флажок с Selenium -error: Элемент не может быть прокручен в поле зрения - PullRequest
0 голосов
/ 02 апреля 2019

Пожалуйста, помогите мне исправить это, я не могу установить флажок с python3 и selenium.

Это сообщение об ошибке

selenium.common.exceptions.ElementNotInteractableException: Сообщение: Элемент не может быть прокручен в поле зрения

Ссылка на geckodriver https://github.com/mozilla/geckodriver/releases

- Код отсюда ---

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from bs4 import BeautifulSoup
import re
import pandas as pd
import os


url = "https://partner.ingatlan.com/zalabanyi.rezso"

driver = webdriver.Firefox(executable_path='/Users/Test/Desktop/geckodriver')
driver.implicitly_wait(30)
driver.get(url)

python_button = driver.find_element_by_id('btn-contact-email')
python_button.click()

search_input_box = driver.find_element_by_id("contact_message_name")
search_input_box.send_keys("John Doe")

find_phone = driver.find_element_by_id("contact_message_phoneNumber")
find_phone.send_keys("00447455555")

find_email = driver.find_element_by_id("contact_message_email")
find_email.send_keys("noreply@email.com")

find_message = driver.find_element_by_id("contact_message_message")
find_message.send_keys("This is my message for you")

find_agree = driver.find_element_by_id("contact_message_acceptPrivacyPolicy")
driver.implicitly_wait(10)

find_agree.click()

1 Ответ

0 голосов
/ 02 апреля 2019

Вы можете установить флажок, используя JavaScript:

driver.execute_script("arguments[0].click();", driver.find_element_by_id("contact_message_acceptPrivacyPolicy"))

Другой способ - использовать Actions для нажатия на ярлык:

from selenium.webdriver.common import action_chains
...

checkbox = driver.find_element_by_css_selector("label[for='contact_message_acceptPrivacyPolicy']")
action = action_chains.ActionChains(driver)
action.move_to_element_with_offset(checkbox, 1, 1).click().perform()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...