селен python элемент не взаимодействует ошибка - PullRequest
0 голосов
/ 16 апреля 2020

Я сделал код для автоматической регистрации, но он не работает, это моя цель нажать

<div id="mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll" class="CheckBox" tabindex="-1" style="left: 878px; top: 669px; width: 89px; height: 28px;" role="checkbox" aria-label="전체동의 " aria-description="" aria-checked="true" status="focused" userstatus="selected" aria-selected="true"><div id="mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll:icontext" class="nexacontentsbox" style="left: 0px; top: 0px; width: 87px; height: 26px;"><img class="nexaiconitem" src="./_resource_/_theme_/esky_pc/images/btn_WF_CheS.png"><div class="nexatextitem" style="padding:0px 0px 0px 6px;display:inline-block;">전체동의</div></div></div>

Я попробовал этот код


driver.find_element_by_xpath('//*[@id="mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll:icontext"]').click()

, но он продолжает выдавать ошибку, и я также попробовал это

driver.find_element_by_xpath("//form[@class='mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll:icontext']]").send_keys(Keys.ENTER)

, и это не сработало, я пытался сделать это с помощью сценария, подобного этому

element = driver.find_element_by_xpath("//form[@class='mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll:icontext']]")
driver.execute_script("arguments[0].click();", element)

, и он не дал мне ошибку, но все равно может Нажмите, как я могу это исправить?

whole code of my program

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import os

username = os.environ.get('USERNAME')
desktop = 'c:\\users\\' + username + '\\desktop\\'

driver = webdriver.Chrome(executable_path=desktop +"chromedriver.exe")
driver.get('https://www.ehaneul.go.kr:5443/esky_p/esky_index.jsp#MENU:M211002000')
sleep(3)
driver.find_element_by_xpath('//*[@id="mainframe.childframe.form.div_main.form.btn_M211000000"]').click()
browser = driver
sleep(2)
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
wait = WebDriverWait(driver, 3)
element =wait.until(EC.element_to_be_clickable((By.ID, "mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll")))
ActionChains(driver).move_to_element(element).click().perform()

редактировать это решается простой прокруткой. так что теперь, как я могу прокрутить автоматически?

1 Ответ

0 голосов
/ 16 апреля 2020
wait = WebDriverWait(driver, 10)    
element =wait.until(EC.element_to_be_clickable((By.ID, "mainframe.childframe.form.div_main.form.div_work.form.chk_pricheckAll")))    
ActionChains(driver).move_to_element(element).click().perform()

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

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

Я вижу вашу кнопку на странице:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...