java - क्रोमेड्रिवर 78 के साथ संभव मुद्दा, सेलेनियम क्रोम में खोले गए पीडीएफ के वेब तत्व को नहीं ढूंढ सकता है




selenium selenium-webdriver (6)

जब तक मेरे Google Chrome को संस्करण 78 में अपडेट नहीं किया गया था, तब तक मेरे कोड ने ठीक काम किया था। मैंने 78.0.3904.70 संस्करण के लिए क्रोमेड्रिवर को भी अद्यतन किया। इसलिए मैं अब सेलेनियम वेबड्राइवर और जावा का उपयोग करके id = 'plugin' के साथ WebElement खोजने में सक्षम नहीं हूं:

<html>
<div id="content">
<embed id="plugin" type="application/x-google-chrome-pdf" src="http://??????????/offer_printed.php?printable=yes&amp;reanudar=&amp;>
</div>
</html>

उस भाग के अलावा मेरे परीक्षण ठीक काम कर रहे हैं। मैंने पहले कभी इस तरह का मुद्दा नहीं रखा था। मैंने WebElement id = 'सामग्री' खोजने की भी कोशिश की, लेकिन मुझे वही त्रुटि मिल रही है।

WebDriverWait wait = new WebDriverWait (driver, 90);
WebElement scrollvalid = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("plugin")));

scrollvalid.sendKeys(Keys.PAGE_DOWN);                       scrollvalid.sendKeys(Keys.PAGE_DOWN);

मेरी स्वचालन स्क्रिप्ट को पीडीएफ तत्व ढूंढना चाहिए और पृष्ठ को नीचे स्क्रॉल करना चाहिए। इसके बजाय, मुझे यह त्रुटि प्राप्त हो रही है: org.openqa.selenium.TimeoutException: 90 सेकंड के बाद समय-समय पर बाय.आईडी द्वारा स्थित तत्व की दृश्यता की प्रतीक्षा कर रहा है: प्लगइन

क्या कोई इसी तरह के मुद्दे का सामना कर रहा है? अग्रिम में धन्यवाद।


आप Nuget पैकेज मैनेजर, क्रोम ड्राइव को हटा सकते हैं और क्रोम को खोज सकते हैं, नया संस्करण selenium.web.driver.ChromeDriver >> jsaKamoto के लिए डाउनलोड कर सकते हैं

वहाँ आप क्रोम संस्करण 78 पाते हैं।


उदाहरण के लिए: आप इस कीवर्ड का उपयोग करके देख सकते हैं!

1. implicit_wait=10
2. Sleep  10

मैं एक ही मुद्दे में चला गया हूँ।

जाहिरा तौर पर क्रोम स्वचालित रूप से खुद को अपडेट करता है। कल (अक्टूबर 29 '19) मेरे क्रोमड्राइवर ने शिकायत करना शुरू कर दिया कि यह क्रोम 78 के साथ संगत नहीं था। मैंने ड्राइवर को 78 संस्करण में अद्यतन किया। मैं यादृच्छिक org.openqa.selenium.NoSuchElementException अपवादों को प्राप्त करना शुरू कर दिया जब मैंने उन तत्वों को खोजने की कोशिश की, जिनकी मैंने पुष्टि की थी। जब मैं ब्रेकपॉइंट्स का उपयोग करता हूं, तो FindElement [s] भी काम करता है। मैंने केवल सीमित सफलता के साथ निहित प्रतीक्षा की कोशिश की।

मैंने zsbappa के ChromeOption समाधान की कोशिश की, लेकिन कोई खुशी नहीं हुई।

Google ने Chrome के पुराने संस्करणों को प्राप्त करना कठिन बना दिया है, लेकिन मुझे https://www.neowin.net/news/google-chrome-76-offline-installer/ पर 76 संस्करण मिले। खबरदार, ऑनलाइन इंस्टॉलर नवीनतम संस्करण को स्थापित करता है। मैं चालक के लिए 76 में वापस आया और सब अच्छा है। मेरे सभी सेलेनियम परीक्षण फिर से काम कर रहे हैं।

मेरा निष्कर्ष यह है कि क्रोम 78 और यह संबद्ध ड्राइवर की दौड़ की स्थिति है जहां सेलेनियम वेब पेज को पूरा करने से पहले पूछताछ करने का प्रयास करता है।


मैंने एक ही मुद्दे का सामना किया है जब एक आइफ्रेम के अंदर एक टैब का उपयोग करने की कोशिश की जाती है, यह 76 संस्करण पर ठीक काम करता था। अब जिसने खुद को 78 तक अपडेट किया है, वह विफल हो रहा है। प्रतीक्षा की है, प्रतीक्षा की प्रतीक्षा की है, सो जाओ, xpath, CSS, id, स्विच संदर्भ, स्क्रॉल तक दृश्य, आदि का उपयोग कर तत्वों का पता लगाएं, कोई भाग्य नहीं है। मैं विंडोज़ 10, 1809 का उपयोग कर रहा हूं। मुझे नहीं पता कि यह अन्य ओएस में हो रहा है या नहीं।

यहाँ मैंने जो सवाल उठाया है:

क्रोमेड्रिवर 78.0.3904.70 लोकेटर का उपयोग करने में समस्या



हमने Chrome 78.0.3904.7, Chromedriver 77/78, पायथन सेलेनियम 3.501.0 के साथ एक समान समस्या का सामना किया है।

हमारे स्वचालित पायथन सेलेनियम परीक्षणों में, हमने कई विफलताएं देखी हैं जहां यह प्रतीत होता है कि तत्वों पर क्लिक नहीं हुए हैं। यहां तक ​​कि अजनबी भी, यह प्रतीत होता है कि तत्व सक्रिय हो गया है (जैसे कि यह क्लिक किया जाने वाला था) लेकिन वास्तविक क्लिक घटना कभी नहीं हुई। परिणामस्वरूप, पृष्ठ स्विचेस आदि विभिन्न डाउनस्ट्रीम विफलताओं के परिणामस्वरूप उत्पन्न नहीं होते हैं।

निशान और त्रुटि की एक प्रक्रिया से, हमने पाया कि मानक .click () फ़ंक्शन का उपयोग करना अब विश्वसनीय नहीं है:

webdriver_element.click()

लेकिन एक्शन चेन्स का उपयोग करना विश्वसनीय प्रतीत होता है:

ActionChains(context.browser).click(webdriver_element).perform()

यह स्पष्ट नहीं है कि यह मामला क्यों है। जैसे ही हम Chrome 78.0.3904.7 पर अपग्रेड हुए, विफलताएं शुरू हो गईं। हम Chromedriver 77.0.3865.90 का उपयोग कर रहे हैं, लेकिन वही परीक्षण Chrome 77.x संस्करणों पर मज़बूती से पास होते हैं इसलिए ऐसा प्रतीत होता है कि यह कुछ गलत है या Chrome 78 में बदल गया है।





selenium-chromedriver