Чрезвычайно плохо знаком с Python, для установки флажков требуется Selenium Webdriver - PullRequest
0 голосов
/ 20 апреля 2020

Это мой первый пост. Я пытаюсь научиться основам программирования c, чтобы лучше общаться с разработчиками, работающими в моей компании, над совершенно отдельным проектом.

Я вел домашнюю работу на странице компании в Facebook и хотел запустить скрипт с веб-драйвером Selenium, закодированным в Python, чтобы помочь мне быстро установить несколько флажков на странице "народов" в Facebook.

Я довольно далеко продвинулся в сценарии, за исключением возможности целиться и отмечать нужные поля.

Пожалуйста, посоветуйте, как мне настроить таргетинг и установить флажки, и go вниз по строке. чтобы непрерывно делать это для указанного количества ящиков.

Вот где я нахожусь:

import time
import selenium.webdriver.support.wait

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains

option = Options()

option.add_argument("--disable-infobars")
option.add_argument("--disable-extensions")

# Pass the argument 1 to allow and 2 to block
option.add_experimental_option("prefs", {
    "profile.default_content_setting_values.notifications": 2
})

driver = webdriver.Chrome(options=option, executable_path='C:\\webdrivers\\chromedriver')

driver.get("https://www.facebook.com/eddiejagmedia/settings/?tab=people_and_other_pages&ref=page_edit")
time.sleep(2)
driver.find_element_by_xpath("//input[@id='email']").send_keys("email")
driver.find_element_by_xpath("//input[@id='pass']").send_keys("pass")
time.sleep(2)
driver.find_element_by_xpath("//input[starts-with(@id, 'u_0_')][@value='Log In']").click()

element: object = selenium.webdriver.support.wait.WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.XPATH, "ContentPlaceHolder1_wucSignInStep2_chkTC")))

actions = ActionChains(driver)
actions.move_to_element(element).perform()
driver.execute_script("arguments[0].click();", element)

Это код HTML флажков, не уверен, какой родитель я " Я должен схватить, хотя.

<label class="_55sg _kv1"><input name="select_single_row_checkbox[]" type="checkbox" value="100003109554020"><span class="_66ul"></span></label>

Наконец, вот изображение того, как это выглядит, чтобы помочь вообразить объем.

введите описание изображения здесь

Большое спасибо, Эдуардо

1 Ответ

0 голосов
/ 21 апреля 2020

Пожалуйста, попробуйте следующее решение:

wait = WebDriverWait(driver, 20)
element = wait.until(EC.element_to_be_clickable((By.ID, "ContentPlaceHolder1_wucSignInStep2_chkTC")))

actions = ActionChains(driver)
actions.move_to_element(element).perform()
driver.execute_script("arguments[0].click();", element)

Примечание: пожалуйста, добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...