রেন্ডারারের কাছ থেকে বার্তা গ্রহণের সময়সীমা শেষ হয়েছে: সেলেনিয়াম জাভা দিয়ে ChromeDriver এবং Chrome v80 ব্যবহার করে 0.100 লগ বার্তা


38

আমরা সম্প্রতি ChromeDriver v80.0.3987.16 এবং ক্রোম v80.0.3987.87 (অফিসিয়াল বিল্ড) (-৪-বিট) দিয়ে আমাদের পরীক্ষার পরিবেশ আপগ্রেড করেছি এবং আপগ্রেড করার পরেও ন্যূনতম প্রোগ্রামটি এই নিরাপদ লগগুলির প্রচুর পরিমাণে উত্পাদন করছে:

[1581082019.282][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.245][SEVERE]: Timed out receiving message from renderer: 0.100

এর আগে এই বার্তাগুলি মাঝে মাঝে ক্রোমড্রাইভার v79.0 / ক্রোম ভি79.0 কম্বো সহ পর্যবেক্ষণ করা হত।

ন্যূনতম কোড ব্লক:

public class chromeDemo 
{
    public static void main(String[] args) 
    {
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            WebDriver driver =  new ChromeDriver();
            driver.get("https://www.google.com/");
            driver.quit();
    }
}

কনসোল আউটপুট:

Starting ChromeDriver 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}) on port 9194
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Feb 07, 2020 6:56:57 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[1581082019.282][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.245][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.430][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.531][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.632][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.734][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.835][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.364][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.544][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.647][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.748][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.850][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.952][SEVERE]: Timed out receiving message from renderer: 0.100

কেউ কি একই মুখোমুখি? ChromeDriver / Chrome v79 এর সাথে কি ChromeDriver / Chrome v80 এর কোনও পরিবর্তন ছিল? কোন সংকেত সনাক্ত করুন?


7
আমিও একই সমস্যার মুখোমুখি :(
সুরজ

6
আমরা একবার v80 এ আপগ্রেড করার পরে আমি একই সমস্যাটি পাচ্ছি। যদিও, আপনার প্রশ্নের সম্ভবত অন্য কেউ একই সমস্যার মুখোমুখি হচ্ছে কিনা তা জিজ্ঞাসা করার চেয়ে এটি কীভাবে ঠিক করবেন তা জিজ্ঞাসা করা উচিত।
ট্যাপলার

2
আমি বিশ্বাস করতে পারি না এই প্রশ্নটি বন্ধ হয়ে গেছে। সাহায্যের জন্য ইঞ্জিন হিসাবে অনেক সময় এসও ব্যর্থ হয়।
সা Saeedদ নেমতি

4
ঠিক একই ইস্যুটির মুখোমুখি। আমাদের সমস্ত স্বয়ংক্রিয় সেলেনিয়াম কোডটি ভেঙে গেছে। এবং অনেক জটিলতার কারণে আমরা ডাউনগ্রেড করতে পারি না।
সা Saeedদ নেমতি

2
@ দেবানজানবি হ্যাঁ আমি আপনার পোস্ট দিয়েছি। আমি আশা করি তারা পরবর্তী প্রকাশে এটি ঠিক করতে পারবেন। আমি সমাধানটি সন্ধান করার চেষ্টা করেছি তাই আমি এটি উল্লেখ করেছি তবে সময়সীমা রোধ করার আরও বিকল্প রয়েছে। আমি এটি অন্য বিকল্পের সাথে চেষ্টা করে দেখব তবে যদি সময়সীমা খুব কম হয় তবে আমি মনে করি আমাদের পরবর্তী প্রকাশের জন্য অপেক্ষা করা উচিত।
মুজ্জামিল

উত্তর:


24

অন্তর্বর্তীকালীন সমাধান

ক্রোম ব্যবহারকারীদের বিভিন্ন রূপের সমাধান এখানে Here

  • আপনি যদি ক্রোম ভি 80 ব্যবহার করে থাকেন তবে সম্প্রতি প্রকাশিত ক্রোমড্রাইভার 80.0.3987.106 ব্যবহার করে সমস্যার সমাধান করে।

    • কোড ব্লক:

      System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
      WebDriver driver =  new ChromeDriver();
      driver.quit();
      
    • কনসোল আউটপুট:

      Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}) on port 20041
      Only local connections are allowed.
      Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
      Feb 14, 2020 9:50:57 PM org.openqa.selenium.remote.ProtocolHandshake createSession
      INFO: Detected dialect: W3C
      
  • আপনি যদি Chrome v81 ব্যবহার করছেন তবে সম্প্রতি প্রকাশিত ChromeDriver 81.0.4044.20 ব্যবহার করে সমস্যাটি সমাধান করে।

  • আপনি যদি দেব বা ক্যানারি চ্যানেল থেকে ক্রোম ব্যবহার করছেন তবে আপনাকে প্ল্যাটফর্মের নির্দিষ্ট বাইনারিগুলি পিকআপ করতে হবে:

স্থায়ী সমাধান

তবে, @bugdroidএই সংশোধন / প্রতিশ্রুতির মাধ্যমে প্রকৃত ফিক্স জমা দিয়েছেন যা নিম্নরূপ:

[ক্রোমড্রাইভার] পুনরায় চেষ্টা করা লুপের সময়সীমা লগইনকে দমন করে : ডি টুলস বার্তাগুলির জন্য অপেক্ষা করার সময় r1924789 একটি পুনরায় চেষ্টা লুপ যুক্ত করেছে। এই স্প্যামযুক্ত ব্যবহারকারীদের লেনদেনগুলি তথ্যহীন সময়সীমা প্রতিবেদনগুলির সাথে। এই সিএল সেই লগ বার্তাগুলিকে দমন করে এবং উপযুক্ত হলে কমান্ডের সময়সীমা মানকে সঠিকভাবে রিপোর্ট করে।

দ্রষ্টব্য :

  • স্থিতি: স্থির
  • লেবেলগুলি: টোবিরেলিড ক্রোমড্রাইভার -২২

ইতিহাস

এই ত্রুটি বার্তা ...

[1581082020.245][SEVERE]: Timed out receiving message from renderer: 0.100

... অগত্যা কোনও ব্যর্থতা নির্দেশ করে না।

@ ট্রিসিয়া যেমন উল্লেখ করেছে যে ক্রোমড্রাইভার সংস্করণ 80 আরও পুনরায় চেষ্টা করার অনুমতি দেওয়ার জন্য একটি ওয়েট লুপ পরিবর্তন করেছে; এই লুপটি সেই বার্তাটি উত্পন্ন করবে তবে এটি শুনতে অবিরত। তবে এই বার্তার জন্য সন্ধানের ট্যাগটি বিভ্রান্তিকর।

আরও, আলোচনায় ইস্যু 3332: পুনরায় চেষ্টা করার সময়টিকে গুরুতর হিসাবে লগইন করা হয়েছে , @ ট্রাইসিয়াক [ক্রোমড্রাইভার কমিটর] আরও যোগ করেছেন যে, ক্রোমড্রাইভার টিম DevToolsClientImpl::HandleEventsUntilনেভিগেশন স্থিতির অতিরিক্ত চেকিং সক্ষম করতে একটি ছোট টাইমআউট (100 এমএস) যুক্ত করেছে । তবে, দুর্ভাগ্যক্রমে যখন এই সময়সীমাটির মেয়াদ শেষ হচ্ছিল, তখন এটি সভার (দ্বারা ProcessNextMessage) হিসাবে লগ ইন করা হয়েছিল । এই ছোট সময়সীমাটির ক্ষেত্রে, এটি সংরক্ষণ হিসাবে লগ করা উচিত নয় , যদিও এখনও সময়সামগ্রীSendCommandInternal থাকা উচিত।

সুতরাং ক্রমড্রাইভারকে সম্ভবত সময়সীমা বাড়িয়ে আরও ভাল উপায়ে লগিং নিয়ন্ত্রণ করার একটি উপায় প্রয়োজন। তবে, যদি কমান্ডটি শেষ অবধি শেষ হয়ে যায়, তালিকাভুক্ত সময়সীমাটি খুব অল্প পরিমাণে থাকে, তবে পরিবর্তে ব্যবহারকারী-সংজ্ঞায়িত সময়সীমার তালিকা তৈরি করা প্রয়োজন।


তাত্ক্ষণিক সমাধান

অন্তর্বর্তীকালীন সমাধান হিসাবে, আপনি ক্রোমড্রাইভার v79.0.3945.36 এ ডাউনগ্রেড করতে পারেন বলে মনে হচ্ছে যে সংরক্ষিত লগগুলি কনসোলে প্রদর্শিত হয় না তবে আপনি সতর্কতা অবলম্বন করবেন :

[WARNING]: This version of ChromeDriver has not been tested with Chrome version 80

যা একটি সুরক্ষিত ... সুরক্ষার মতো মনে হচ্ছে এবং এটি একটি ক্রোমিয়াম দলের সদস্যের দ্বারা নিশ্চিত করা হয়েছে ।

chromedriver79

  • কোড ব্লক:

    public class A_Chrome 
    {
        public static void main(String[] args) 
        {
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            WebDriver driver =  new ChromeDriver();
            driver.get("https://www.google.com/");
            driver.quit();
        }
    }
    
  • কনসোল আউটপুট:

    Starting ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}) on port 9200
    Only local connections are allowed.
    Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
    [1581503845.444][WARNING]: This version of ChromeDriver has not been tested with Chrome version 80.
    Feb 12, 2020 4:07:26 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    

TL; ডাঃ

আপনি এতে বেশ কয়েকটি প্রাসঙ্গিক আলোচনার সন্ধান করতে পারেন:


1
এছাড়াও সচেতন থাকুন যে এই লগ বার্তাটি স্ট্যাডারকে লেখা হয়েছে বলে মনে হচ্ছে। টেস্টগুলি চালিয়ে যাওয়ার পরে আমার পাওয়ারশেল স্ক্রিপ্টটি ব্যর্থ হওয়া শুরু হয়েছিল vstest.console.exeকারণ পরীক্ষাগুলি পাস হলেও পাওয়ারশেল $?পরিবর্তনশীল ছিল $false। পাওয়ারশেল মনে করেন স্ট্যাডররকে যা কিছু লেখা হচ্ছে তা ব্যর্থতা, যদিও $LastExitCodeপরীক্ষার রানার শূন্য ফিরে এসেছিল।
গ্রেগ বার্গার্ড্ট

4
রি: ক্রোম ভি 80, সম্প্রতি প্রকাশিত ক্রোমড্রাইভার 80.0.3987.106 ব্যবহার করে সমস্যার সমাধান করে ves পুনঃ: Chrome v81, সম্প্রতি প্রকাশিত ক্রোমড্রাইভার 81.0.4044.20 ব্যবহার করে সমস্যার সমাধান করে sol আমি এখনও ChromeDirver আপডেটগুলি সহ সমস্যাটি দেখছি।
নিল

1
হ্যাঁ !!!!! ক্রোমড্রাইভার v79 উইন 32 ক্রোম ভি 80.0.3987.132 এর সাথে দুর্দান্ত কাজ করছে এবং কনসোলে টাইমড আউট ত্রুটি দিচ্ছে না। তবে কখনও কখনও ক্রোমড্রাইভার সার্ভারটি শুরু করতে ব্যর্থ হয়।
সুরোদীপ

1
ক্রোমড্রাইভার ভি work৯ ওয়ার্কআরউন্ড ব্যবহার করা স্থির ক্রোমের সর্বশেষতম সংস্করণ (৮১.০.৪৪৪.৯২) এর সাথে আর কাজ করছে না যেখানে ড্রাইভার এমনকি ক্রোম খুলতে অক্ষম। আমি ক্রোমড্রাইভারকে সর্বশেষে আপগ্রেড করেছি এবং এটি কাজ করে, তবে গুরুতর সময়সীমা ত্রুটি ফিরে এসেছে।
পিএসটি

@ পিএসটি - ঠিক একই সমস্যা। এই হতাশাজনক।
শ্রীরাম ইলেঙ্গো

10

মূল কারণ: আপনি যখনই সেলেনিয়াম ড্রাইভারের সাহায্যে কোনও পৃষ্ঠা লোড করছেন, driverপৃষ্ঠাটি সম্পূর্ণ লোড না হওয়া পর্যন্ত স্ক্রিপ্ট অপেক্ষা করুন। তবে কখনও কখনও ওয়েবড্রাইভার পৃষ্ঠা লোড করতে আরও বেশি সময় নেয়, সেক্ষেত্রে TimeoutExceptionআপনি আপনার কনসোলটিতে ব্যতিক্রম দেখতে পাবেন ।

সমাধান: যখন পৃষ্ঠা লোডিংয়ে খুব বেশি সময় লাগে এবং আপনাকে অতিরিক্ত সাবস্রোর্সগুলি (চিত্র, সিএসএস, জেএস ইত্যাদি) ডাউনলোড বন্ধ করতে হবে আপনি ওয়েবড্রাইভারের মাধ্যমে পৃষ্ঠাটি লোডস্ট্রেটজি পরিবর্তন করতে পারবেন।

কোডের নীচে পৃষ্ঠা থেকে এইচটিএমএল সামগ্রীটি লোড করুন । আপনি ক্রোমোপশন থেকে পৃষ্ঠা লোড কৌশল সেট করতে পারেন

ChromeOptions options = new ChromeOptions();
options.setPageLoadStrategy(PageLoadStrategy.NONE);

আপডেট সলিউশন -২: আমি দেবাঞ্জনবি-র সাথে একমত, পেজলড কৌশলটি কারও সাথেই নেই, অতিরিক্ত ফাইল ডাউনলোড না করে (চিত্র, সিএসএস, জেএস ইত্যাদি) পরীক্ষা করার সময় ভাল ধারণা হয় না। আমি এটি সম্পর্কে সমস্ত সমস্যা সন্ধান করেছি এবং একটি বৈধ সমাধান সন্ধান করার চেষ্টা করেছি। আমি বিকল্পগুলির নীচে চেষ্টা করেছি কারণ একসময় এটি এই সমস্যাটি সমাধান করতে সক্ষম হয়েছিল।

    options.addArguments("start-maximized"); 
    options.addArguments("enable-automation"); 
    options.addArguments("--no-sandbox"); 
    options.addArguments("--disable-infobars"); 
    options.addArguments("--disable-dev-shm-usage"); 
    options.addArguments("--disable-browser-side-navigation"); 
    options.addArguments("--disable-gpu");

তাদের কেউই সহায়তা করেনি কিন্তু আমি পৃষ্ঠা লোড কৌশল নিয়ে আবার একটি সমাধান পেয়েছি। এই সময় আমরা সবাই subresources ডাউনলোড করছেন কিন্তু আমরা জন্য অপেক্ষা হয় DOMContentLoaded ইভেন্ট। এই কৌশলটি এগার নামে পরিচিত । সমস্ত 3 পৃষ্ঠা লোড কৌশল উপলব্ধ উপলব্ধ একটি ছোট সংজ্ঞা

1. সাধারণ: এই কৌশলটির ফলে সেলেনিয়াম পূর্ণ পৃষ্ঠা লোড হওয়ার জন্য অপেক্ষা করতে পারে (এইচটিএমএল সামগ্রী এবং উপসম্পদ ডাউনলোড এবং বিশ্লেষণ করা)।

উত্সাহী: এই কৌশলটি সেলেনিয়ামকে DOMContentLoaded ইভেন্টের জন্য অপেক্ষা করার কারণ ঘটায় (এইচটিএমএল সামগ্রী কেবল ডাউনলোড এবং পার্স করা হয়েছে)।

৩. কোনওটি নয়: এই কৌশলটি প্রাথমিক পৃষ্ঠাগুলি সম্পূর্ণরূপে প্রাপ্ত হওয়ার পরে অবিলম্বে সেলেনিয়ামকে ফিরিয়ে আনবে (এইচটিএমএল সামগ্রী ডাউনলোড করা)।

নোট: ডিফল্টরূপে, যখন সেলেনিয়াম কোনও পৃষ্ঠা লোড করে, এটি সাধারণ পৃষ্ঠাটি লোডস্ট্রেটজি অনুসরণ করে।

পেজলোড কৌশল ব্যবহার না করে কোড স্নিপেট (বা সাধারণ হিসাবে সেলেনিয়াম দ্বারা ব্যবহৃত সাধারণ)

System.setProperty("webdriver.chrome.driver", "C:\\Users\\...\\LatestDriver\\chromedriver.exe");   
WebDriver driver=new ChromeDriver();
driver.get("http://www.google.com");
driver.manage().window().maximize();
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.name("q")));
el.click();
List <WebElement> allLinks = driver.findElements(By.tagName("a"));
System.out.println(allLinks.size());
driver.quit();

কনসোল আউটপুট:

পোর্ট 41540- এ ক্রোমড্রাইভার 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs / ব্রাঞ্চ-প্রধান / 3987 @ {# 185}) শুরু করা হচ্ছে কেবল স্থানীয় সংযোগের অনুমতি রয়েছে। দূষিত কোডের মাধ্যমে অ্যাক্সেস রোধ করতে দয়া করে ChromeDriver দ্বারা ব্যবহৃত পোর্টগুলি এবং সম্পর্কিত পরীক্ষা ফ্রেমওয়ার্কগুলি সুরক্ষিত করুন। ফেব্রুয়ারী 11, 2020 10:22:12 এএম org.openqa.selenium.remote. প্রোটোকল হ্যান্ডশেক তৈরি সেশন ইনফো: সনাক্ত করা উপভাষা: ডাব্লু 3 সি [1581412933.937] [সভার]: রেন্ডারারের বার্তা গ্রহণের সময়সীমা শেষ হয়েছে: 0.100 [1581412934.066] সময়সীমা শেষ রেন্ডারারের কাছ থেকে বার্তা প্রাপ্তি: 0.100 [1581412934.168] [সভার]: রেন্ডারকারীর কাছ থেকে বার্তা গ্রহণের সময়সীমা শেষ হয়েছে: 0.100 [1581412934.360] [এসভার]: রেন্ডারারের বার্তা গ্রহণের সময়সীমা শেষ হয়েছে: 0.100 [1581412934.461] [সভার]: সময়দাতাদের কাছ থেকে প্রাপ্ত বার্তা প্রাপ্ত 0.100 [1581412934.618] [SEVERE]:

পেজলড কৌশল সহ - আগ্রহী:

টুকিটাকি সংকেতলিপি:

System.setProperty("webdriver.chrome.driver", "C:\\Users\\...\\LatestDriver\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setPageLoadStrategy(PageLoadStrategy.EAGER);
WebDriver driver=new ChromeDriver(options);
driver.get("http://www.google.com");
driver.manage().window().maximize();
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.name("q")));
el.click();
List <WebElement> allLinks = driver.findElements(By.tagName("a"));
System.out.println(allLinks.size());
driver.quit();

কনসোল আউটপুট:

ক্রোমড্রাইভার 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs / ব্রাঞ্চ-প্রধান / 3987 @ {# 185}) বন্দর 1175 এ শুরু করা হচ্ছে কেবল স্থানীয় সংযোগের অনুমতি রয়েছে। দূষিত কোডের মাধ্যমে অ্যাক্সেস রোধ করতে দয়া করে ChromeDriver দ্বারা ব্যবহৃত পোর্টগুলি এবং সম্পর্কিত পরীক্ষা ফ্রেমওয়ার্কগুলি সুরক্ষিত করুন। ফেব্রুয়ারী 11, 2020 10:29:05 এএম org.openqa.selenium.remote. প্রোটোকল হ্যান্ডশেক তৈরি সেশন ইনফো: সনাক্তকারী উপভাষা: ডাব্লু 3 সি
21


ওয়েবড্রাইভার কনফিগারেশনগুলি মানকযুক্ত এবং প্রয়োজনীয় পরীক্ষার কৌশলটির সাথে সর্বোত্তম ফিট হিসাবে সাধারণত আপনি পেজলড কৌশলটি মুছে ফেলতে পারবেন না। যাইহোক, আলোচনায় কীভাবে সেলেনিয়ামকে পূর্ণ পৃষ্ঠা লোড হওয়া পর্যন্ত অপেক্ষা না করা যায় , কোনও পৃষ্ঠা লোড হওয়ার জন্য অপেক্ষা করবেন না আমরা এটি বিশদে আলোচনা করেছি। এটি ক্রোমড্রাইভার ভি 80 নিয়ে একটি সমস্যা।
দেবানজানবি

2
@ দেবাঞ্জনবি আমি আপনার সাথে একমত কিন্তু আপনি জানেন যে সমস্যাগুলি সমাধান করার জন্য তাই সম্প্রদায় is আমি যতটা সম্ভব সলিউশন পাওয়া যায় তা চেষ্টা করেছিলাম। আপনি এটি হয়, তাহলে সংখ্যায় আরও বা বাগ ক্রোম চালক তারপর আমরা তাদের গীত প্রকল্প বা প্রস্তাবিত জায়গা এই সমস্যাটি লগ ইন করতে হবে। এসওতে প্রশ্ন উত্থাপন কোনও উপকারে আসবে না।
মুজ্জামিল

আমি সম্প্রতি আমার ক্রোম এবং ক্রোমড্রাইভার আপডেট করেছি এবং তারপরে এই সমস্ত সতর্কতা বার্তা পাওয়া শুরু করেছি। এখন আমি আমার ক্রোমকে ডাউনগ্রেড করার চেষ্টা করছি এবং ক্রোম 79v কোথায় পাওয়া যাবে তা খুঁজে পাচ্ছি না। কেউ আমাকে ক্রোম 79
ভি

@ ভিন এখানে আপনি chromedriver.chromium.org/downloads
মুজ্জামিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.