मैं इस वेब पेज पर सभी लेख निकालने की कोशिश कर रहा हूं, लेकिन मैं सेलेनियम को पेज के अंत में "जारी रखें" बटन पर क्लिक नहीं कर सकता। मैंने कई अलग-अलग संस्करणों की कोशिश की है, लेकिन मैं सिर्फ एक ही पोस्ट करूंगा, जो कम से कम कोई त्रुटि नहीं फेंकता है ...:
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
addr = 'https://www.armani.com/de/armanicom/giorgio-armani/f%C3%BCr-ihn/alle-kleidungsstucke'
options = webdriver.ChromeOptions()
options.add_argument("--enable-javascript")
driver = webdriver.Chrome(options=options)
driver.get(addr)
ContinueButton = driver.find_element_by_xpath("//li[@class='nextPage']")
# gives: No error, but also no effect
# ContinueButton = driver.find_element_by_xpath("/html/body/div[3]/main/section/div[2]/div[1]/ul/li[8]/a/span[2]")
# gives: NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[3]/main/section/div[2]/div[1]/ul/li[8]/a/span[2]"}
#ContinueButton = driver.find_element_by_css_selector(".nextPage > a:nth-child(1)")
# gives: NoSuchElementException: no such element: Unable to locate element:
ActionChains(driver).move_to_element(ContinueButton).click()
time.sleep(5)
क्रोम इंजन v86 है, लेकिन मैंने फ़ायरफ़ॉक्स के साथ भी कोशिश की है (और असफल)।
2 जवाब
आप तत्व के क्लिक करने योग्य होने की प्रतीक्षा करना चाहते हैं और फिर उस पर क्लिक करने का प्रयास करना चाहते हैं: मैं सेलेनियम आयात वेबड्राइवर से selenium.webdriver.common.action_chains आयात एक्शनचेन से समय आयात करता हूं
addr = 'https://www.armani.com/de/armanicom/giorgio-armani/f%C3%BCr-ihn/alle-kleidungsstucke'
options = webdriver.ChromeOptions()
options.add_argument("--enable-javascript")
driver = webdriver.Chrome(options=options)
driver.get(addr)
ContinueButton = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, "//li[@class='nextPage']/a")))
ActionChains(driver).move_to_element(ContinueButton).click()
time.sleep(5)
समस्या यह है कि आप li
तत्व पर क्लिक कर रहे हैं।
आपका क्लिक प्राप्त हो गया है लेकिन कोई कार्रवाई नहीं की गई है, ऐसा करने के लिए आपको li
के बाद a
तत्व को लक्षित करना होगा।
ये कोशिश करें:
ContinueButton = driver.find_element_by_xpath("//li[@class='nextPage']/a")
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।