python сканирование данных с использованием хромедрайвера: javascript void (0) - PullRequest
0 голосов
/ 11 января 2020

Я пытаюсь нажать на эту кнопку входа в систему, используя драйвер chrome. он не возвращает ошибок, но кнопка не была нажата, и каждый раз, когда я запускаю код, слева от веб-страницы я вижу небольшой знак, говорящий: «javascript: void (0); ».

Вот мой код. Заранее спасибо!

import os
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(executable_path="/Users/XXX/Documents/chromedriver")
driver.get('https://www.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/pp/index.xml')
driver.implicitly_wait(3)

driver.find_element_by_xpath(
    '//*[@class="w2group "]'
    ).click()

enter image description here

1 Ответ

0 голосов
/ 12 января 2020

Пожалуйста, попробуйте,

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


driver = webdriver.Chrome(executable_path="YOUR_CHROMEDRIVER_PATH")
driver.get('https://www.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/pp/index.xml')

TARGET = 'textbox81212912'

# driver.find_element_by_id("textbox81212912").click()

element = WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.ID, TARGET))
)
element.click()

input() # wait

Сначала вы выбираете неправильный объект. //*[@class="w2group "] этот XPath означает, что выбран первый из всех объектов с атрибутом класса "w2group" для этой страницы.

Кроме того, идентификатор элемента «로그인»: «textbox81212912»
enter image description here

Во-вторых, используйте явное ожидание целевого элемента, а не явное ожидание. Это полезно для предотвращения непредвиденных ошибок, таких как: ошибка загрузки страницы из-за скорости сети и т. Д. c ...

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