ওয়েবড্রাইভারঅ্যাক্সপশন: অজানা ত্রুটি: ক্রোম ব্রাউজারটি শুরু করার চেষ্টা করার সময় দেবটুলসঅ্যাক্টিভপোর্ট ফাইলটি উপস্থিত নেই


152

আমি একটি ইউআরএল দিয়ে ক্রোম চালু করার চেষ্টা করছি, ব্রাউজারটি চালু হয় এবং এর পরে এটি কিছুই করে না।

আমি 1 মিনিটের পরে নীচের ত্রুটিটি দেখছি:

Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)

আমার কনফিগারেশন:

  • ক্রোম: 66
  • ক্রোমব্রোজার: 2.39.56

ফায়ারফক্সে পিএস সবকিছু ঠিকঠাক কাজ করে


1
আপনি কি কোডটি দিয়ে প্রশ্নটি আপডেট করতে পারেন যা এই ত্রুটি ঘটাচ্ছে?
জিপিটি 14

উত্তর:


71

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

org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist 

... ইঙ্গিত দেয় যে ক্রোমড্রাইভার একটি নতুন ওয়েব ব্রাউজার অর্থাৎ ক্রোম ব্রাউজার শুরু করতে / উত্সাহিত করতে অক্ষম ছিল সেশন ।

আপনার কোড ট্রায়াল এবং সমস্ত বাইনারিগুলির সংস্করণ তথ্য আমাদের কী ভুল হচ্ছে সে সম্পর্কে কিছুটা ইঙ্গিত দিত।

তবে যুক্ত হিসাবে - ডিজেবল-ডেভেল-শ্ম-ব্যবহার অনুসারে ডিফল্ট লঞ্চ পতাকাগুলিতে যুক্তি যুক্ত করা যুক্তি --disable-dev-shm-usageঅস্থায়ীভাবে সমস্যার সমাধান করবে।

আপনি যদি কোনও নতুন ক্রোম ব্রাউজার সেশন শুরু করতে / প্রসারিত করতে চান তবে আপনি নিম্নলিখিত সমাধানটি ব্যবহার করতে পারেন:

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox"); // Bypass OS security model
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");

নিষ্ক্রিয়-দেব-shm-ব্যবহারের

বেস_সুইচস.সি.সি অনুযায়ী disable-dev-shm-usageকেবল লিনাক্স ওএসে বৈধ বলে মনে হচ্ছে :

#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
// The /dev/shm partition is too small in certain VM environments, causing
// Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
// work-around this issue (a temporary directory will always be used to create
// anonymous shared memory files).
const char kDisableDevShmUsage[] = "disable-dev-shm-usage";
#endif

আলোচনায় / dev / shm এর পরিবর্তে / tmp ব্যবহারের বিকল্প যুক্ত করুন ডেভিড উল্লেখ করেছেন:

আমি মনে করি এটি কীভাবে / dev / shm এবং / tmp লাগানো হয় তার উপর নির্ভর করবে। যদি উভয়কেই tmpfs হিসাবে স্থাপন করা হয় তবে আমি ধরে নিচ্ছি যে কোনও পার্থক্য থাকবে না। যদি কোনও কারণে / tmp টি tmpfs হিসাবে ম্যাপ করা না থাকে (এবং আমি মনে করি systemd দ্বারা ডিফল্টরূপে tmpfs হিসাবে ম্যাপ করা থাকে), বেনামে ভাগ করা ফাইল তৈরি করার সময় ক্রোম ভাগ করা মেমরি পরিচালনা সর্বদা মেমরিতে ফাইলগুলি ম্যাপ করে, তাই সেই ক্ষেত্রেও এমনটি হওয়া উচিত নয় অনেক পার্থক্য। আমার ধারণা আপনি পতাকাটি সক্ষম করে টেলিমেট্রি পরীক্ষা করতে বাধ্য করতে পারেন এবং দেখুন এটি কীভাবে চলে।

কেন ডিফল্টরূপে ব্যবহার করবেন না, এটি ভাগ করা মেমরি টিম দ্বারা চালিত হয়েছিল, আমি অনুমান করি যে এটি ডিফল্টরূপে ভাগ করে নেওয়া মেমরির জন্য / dev / shm ব্যবহার করা উচিত।

শেষ পর্যন্ত এগুলি সমস্তই স্মরণে ব্যবহার করা উচিত, তবে আমি মনে করি না যে এটি খুব শীঘ্রই ঘটতে চলেছে, যেহেতু এটি ক্রোম মেমরি পরিচালনার উল্লেখযোগ্যভাবে রিফ্যাক্টরিংয়ের প্রয়োজন হবে।


Outro

স্যান্ডবক্সের গল্পটির লিঙ্কটি এখানে ।


8
তবে কী কারণে এই নির্দিষ্ট ত্রুটিটি ঘটেছিল DevToolsActivePort file doesn't existএবং হঠাৎ কেন এটি পপিং শুরু হয়েছিল?

3
"অতিরিক্ত বিবেচনা" আইটেম - দেখে মনে হচ্ছে তারা এই সমস্যাটিতে বেশ কার্যকর। বিশেষত এই ধরণের পরিস্থিতি যেখানে এটি প্রতিষ্ঠিত হয়নি ঠিক কী কারণে সমস্যাটি দেখা দিয়েছে।
পিট কেলি

5
@ দেবানজানবির পোস্টের মোছা অংশ থেকে, এটি Chromedriver ব্যবহারের কারণে ঘটতে পারে যা ইনস্টল করা ক্রমের সংস্করণ সমর্থন করে না। এটি ঘটতে পারে, উদাহরণস্বরূপ, যদি ক্রোমড্রাইভার আপগ্রেড না করে ক্রোম আপগ্রেড করা হয়।
এক্সপ্রেস

এটা আমার বর্তমান সিস্টেমে আমার জন্য সমস্যা সমাধানের জন্য ব্যবহৃত এটা না (উবুন্টু 18 + + পাইথন 3.7)
tw0000

3
যদি এটি অন্য কাউকে সহায়তা করে তবে কেবল যোগ disable-dev-shm-usageকরা যথেষ্ট ছিল না। --no-sandboxএটির কাজ পেতে আমাকে যুক্ত করতে হয়েছিল। এটি আমার জন্য সেলেনিয়াম- chromeOptions.addArguments("--no-sandbox", "--disable-dev-shm-usage");
জাভার

52

আমি সোমবার 2018-06-04 এ এই সমস্যাটি দেখতে শুরু করেছি। আমাদের পরীক্ষাগুলি প্রতি সপ্তাহে চলে। দেখা যাচ্ছে যে একমাত্র জিনিসটি বদলেছিল গুগল-ক্রোম সংস্করণ (যা বর্তমানটিতে আপডেট হয়েছিল) জেভিএম এবং সেলেনিয়াম লিনাক্স বাক্সের সাম্প্রতিক সংস্করণ ছিল (জাভা 1.8.0_151, সেলেনিয়াম 3.12.0, গুগল ক্রোম 67.0.3396.62, এবং Xvfb রানের)।
বিশেষত " --no-Sandbox " এবং " --disable-dev-shm-વપરાશ " যুক্তি যুক্ত করার ফলে ত্রুটি থামানো হয়েছে। গুগল-ক্রোম আপডেট করার জন্য কী কী ট্রিগার করেছে সে সম্পর্কে প্রভাব সম্পর্কে আরও তথ্য এবং অন্যান্য প্রশ্নগুলি খুঁজতে আমি এই বিষয়গুলি সন্ধান করব।

ChromeOptions options = new ChromeOptions();
        ...
        options.addArguments("--no-sandbox");
        options.addArguments("--disable-dev-shm-usage");

আমি স্পষ্ট করে বলতে চাই যে এই কোডটি প্রতিটি সপ্তাহের দিন একটি উবুন্টু লিনাক্স বাক্সে চলছিল, তবে উইন্ডোজ ডেস্কটপে সমমানের কোডটি সোমবারেও ঠিক আছে। দেবটুলসঅ্যাকটিভপোর্ট ফাইলের কার্যকারিতা কী এবং সে সম্পর্কেও কার্যকর হবে সে সম্পর্কে আমি কোনও তথ্য পাইনি। পিকে
পিট কেলি

1
এই বিকল্পগুলি আমার জন্য ত্রুটিও বন্ধ করে দিয়েছে। পিডি: একটি রেল স্ট্যাক ব্যবহার করে।
মারিও পেরেজ

আমি এরপরেও [java] [1536892035.965][SEVERE]: Timed out receiving message from renderer: 60.000ত্রুটি পেয়েছি
জোনাথন

@ জোনাথন - হাই! কোন ওএস, আপনি যে উপাদানগুলি ব্যবহার করছেন তার কোন সংস্করণ বা আপনি কীভাবে প্রক্রিয়াটি চালাচ্ছেন তার মতো আপনি আরও কিছু বিশদ সরবরাহ করতে পারেন?
পিট কেলি

@ টবি: হাই! আমি বোঝাতে চাইছি না যে অবস্থানটি কোনও পার্থক্য করেছে, কেবলমাত্র সেই পরামিতিগুলির সর্বনিম্ন ব্যবহার। দেখে মনে হয়েছিল আপগ্রেড হওয়ার সময় আমি যে ডিফল্ট মানগুলির উপর নির্ভর করেছি তার কিছু পরিবর্তন হয়েছে changed আপনার সিস্টেম বা বার্তা যে কোনও অন্য বিবরণ আপনাকে সরবরাহ করতে পারে help
পিট কেলি

35

আমাদের জেনকিনস ক্রীতদাসগুলিতে (লিনাক্স মেশিন) একই সমস্যা ছিল এবং উপরের সমস্ত বিকল্প চেষ্টা করেছিলাম।

যুক্তি নির্ধারণ করা একমাত্র জিনিস

chrome_options.add_argument('--headless')

কিন্তু যখন আমরা আরও তদন্ত করেছি, লক্ষ্য করেছি যে এক্সভিএফবি স্ক্রিন সম্পত্তিটি শুরু করে না এবং এই ত্রুটির কারণ ঘটায়। আমরা এক্সভিএফবি স্ক্রিনটি ঠিক করার পরে, এটি সমস্যার সমাধান করেছে।


2
এটি আমার সমস্যা সমাধান করেছে, সি # ব্যবহার করে চলার সময় (এই ক্ষেত্রে বিকল্পটি দেখতে এরকম দেখায়:
অপশনগুলি Aআডগার্টমেন্ট

এক্সভিএফবি আমার জন্য ইস্যুটি ছিল
lucaswxp

23

পাইথনেও আমার একই সমস্যা ছিল। উপরের সাহায্য করেছে। পাইথনে আমি যা ব্যবহার করেছি তা এখানে -

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('/path/to/your_chrome_driver_dir/chromedriver',chrome_options=chrome_options)

আমি আপগ্রেড ক্রোম দিয়ে আমার সমস্যার সমাধান করেছি (আমার কাছে ইতিমধ্যে সর্বশেষতম ক্রোমড্রাইভ ছিল), তাই আমাকেও সাধারণ ব্রাউজারটি আপগ্রেড করতে হয়েছিল।
axel_ande

18

হালনাগাদ:

আমি ইস্যুটি পেতে সক্ষম হয়েছি এবং এখন আমি পছন্দসই ইউআরএল দিয়ে ক্রোম অ্যাক্সেস করতে সক্ষম হয়েছি।

প্রদত্ত সমাধানগুলি চেষ্টা করার ফলাফল:

আমি উপরোক্ত সমস্ত সেটিংস চেষ্টা করেছিলাম কিন্তু আমি সমস্যাটি সমাধান করতে পারিনি

ইস্যু সম্পর্কিত ব্যাখ্যা:

আমার পর্যবেক্ষণ অনুযায়ী ডেভটুলস অ্যাক্টিভপোর্ট ফাইলের অস্তিত্ব নেই যখন ক্রোম স্কোপড_ডিরএক্সএক্সএক্সএক্সএক্সএক্স ফোল্ডারে তার রেফারেন্স সন্ধান করতে অক্ষম হয়।

সমস্যা সমাধানে পদক্ষেপ নেওয়া হয়েছে

  1. আমি সমস্ত ক্রোম প্রক্রিয়া এবং ক্রোম ড্রাইভার প্রসেসকে হত্যা করেছি।
  2. ক্রোম শুরু করার জন্য নীচের কোডটি যুক্ত করা হয়েছে

    System.setProperty("webdriver.chrome.driver","pathto\\chromedriver.exe");    
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("useAutomationExtension", false);
    WebDriver driver = new ChromeDriver(options);
    driver.get(url);
    

উপরের পদক্ষেপগুলি ব্যবহার করে আমি সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

আপনার উত্তরের জন্য ধন্যবাদ।


3
অটোমেশন এক্সটেনশনটির কী কী প্রভাব রয়েছে তা আপনি জানেন? এটি অটোমেশন (স্ক্রিনশট / নিয়ন্ত্রণ ইত্যাদি) এর জন্য এক্সটেনশনগুলি অক্ষম করে? ডেভটুলসের আবির্ভাবের কোনও পরিবর্তন হওয়ার জন্য এই পরিবর্তনটি রেন্ডার করা উচিত নয়? Codereview.chromium.org/2785413002
টবি

10

আমি সম্প্রতি একই সমস্যার মুখোমুখি হয়েছিলাম এবং কিছু পরীক্ষা এবং ত্রুটির পরে এটি আমার পক্ষেও কাজ করে।

শীর্ষে থাকা আবশ্যক:

options.addArguments("--no-sandbox"); //has to be the very first option

BaseSeleniumTests.java

public abstract class BaseSeleniumTests {

    private static final String CHROMEDRIVER_EXE = "chromedriver.exe";
    private static final String IEDRIVER_EXE = "IEDriverServer.exe";
    private static final String FFDRIVER_EXE = "geckodriver.exe";
    protected WebDriver driver;

    @Before
    public void setUp() {
        loadChromeDriver();
    }

    @After
    public void tearDown() {
        if (driver != null) {
            driver.close();
            driver.quit();
        }
    }

    private void loadChromeDriver() {
        ClassLoader classLoader = getClass().getClassLoader();
        String filePath = classLoader.getResource(CHROMEDRIVER_EXE).getFile();
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        ChromeDriverService service = new ChromeDriverService.Builder()
                .usingDriverExecutable(new File(filePath))
                .build();
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--no-sandbox"); // Bypass OS security model, MUST BE THE VERY FIRST OPTION
        options.addArguments("--headless");
        options.setExperimentalOption("useAutomationExtension", false);
        options.addArguments("start-maximized"); // open Browser in maximized mode
        options.addArguments("disable-infobars"); // disabling infobars
        options.addArguments("--disable-extensions"); // disabling extensions
        options.addArguments("--disable-gpu"); // applicable to windows os only
        options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
        options.merge(capabilities);
        this.driver = new ChromeDriver(service, options);
    }

}

GoogleSearchPageTraditionalSeleniumTests.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class GoogleSearchPageTraditionalSeleniumTests extends BaseSeleniumTests {

    @Test
    public void getSearchPage() {
        this.driver.get("https://www.google.com");
        WebElement element = this.driver.findElement(By.name("q"));
        assertNotNull(element);
    }

}

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <scope>test</scope>
        </dependency>
</dependencies>

মজাদার ! আপনি কীভাবে একটি। পাশের ফাইল তৈরি করবেন? এটি কি এমন কিছু যা একজন QA ব্যক্তি ম্যানুয়ালি করে?
নিটাল

আপনি একটি পরীক্ষা রেকর্ড করতে সেলেনিয়াম আইডিই ব্যবহার করেন। ফলাফলটি একটি। পাশের ফাইল। এটি আইডিই ব্যবহার করে দুর্দান্ত চলছে, তবে আমি সেলেনিয়াম-সাইড-রানার ব্যবহার করে এটি চালানোর চেষ্টা করছি তবে ক্রোমড্রাইভার দিয়ে সমস্ত ধরণের সমস্যায় পড়ছি।
পাব্রাম

প্রথম বিকল্প হতে হবে - এই
হাহাকে

ধন্যবাদ! "--No-Sandbox" যুক্ত করা আমার সমস্যার সমাধান করে।
মাতাবরেস

7

নিম্নলিখিত পরিবেশে আমার ক্ষেত্রে:

  • উইন্ডোজ 10
  • পাইথন 3.7.5
  • গুগল ক্রোম সংস্করণ 80 এবং পথে ক্রোমড্রাইভার সম্পর্কিত C:\Windows
  • সেলেনিউম্ 3.141.0

আমি আর্গুমেন্ট যোগ করার জন্য প্রয়োজন --no-sandboxএবং --remote-debugging-port=9222করতে ChromeOptionsবস্তুর এবং প্রশাসক হিসেবে PowerShell / cmd কমান্ড lunching দ্বারা ব্যবহারকারীর প্রশাসক হিসেবে কোড রান।

কোড সম্পর্কিত টুকরাটি এখানে:

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--remote-debugging-port=9222')
driver = webdriver.Chrome(options=options)

1
আমার সাথে উবুন্টু 18.04, পাই 3.7, ক্রোম (ড্রাইভার) 80
প্যাট্রোকেট

এটি কোনও সমস্যা ছাড়াই আমার পক্ষে কাজ করেছে। আমি আজই এই ইস্যুটিতে ছড়িয়ে পড়া শুরু করেছি, তবে আপনার উত্তরের কারণে এটি দ্রুত সংশোধন হয়ে গেছে! আমার পরিবেশ মূলত আপনার মতো।
রায়ান হ্যারিস

5

পাইথন সেলেনিয়ামের সাথে উবুন্টু ২০-তে আমি প্রথমে ক্রোমড্রাইভার আলাদাভাবে ডাউনলোড করার পরে এবং তারপরে ব্যবহার করে এই সমস্যায় পড়েছি sudo apt install chromium-browser যদিও তারা একই সংস্করণ ছিল এটি ঘটতে থাকবে।

আমার ফিক্সটি ছিল সরবরাহিত ক্রোম ড্রাইভারটি ছিল যা অবস্থিত রেপো প্যাকেজের সাথে এসেছিল

/snap/bin/chromium.chromedriver

driver = webdriver.Chrome(chrome_options=options, executable_path='/snap/bin/chromium.chromedriver')

4

যেমনটি এই অন্য উত্তরে বলা হয়েছে :

এই ত্রুটি বার্তা ... এর সূচিত করে যে ক্রোমড্রাইভার একটি নতুন ওয়েব ব্রাউজার অর্থাৎ ক্রোম ব্রাউজার সেশন শুরু করতে / উত্সাহিত করতে অক্ষম ছিল।

সম্ভাব্য কারণগুলির মধ্যে, আমি এই সত্যটি উল্লেখ করতে চাই যে আপনি যদি Xvfb এর মাধ্যমে একটি মাথাবিহীন ক্রোমিয়াম চালাচ্ছেন তবে আপনার পরিবর্তনশীলটির প্রয়োজন হতে পারে : আমার ক্ষেত্রে, আমি স্থানে ছিলাম (প্রস্তাবিত হিসাবে) এবং বিকল্পগুলি, সবকিছু ছিল জরিমানা চলছে, তবে একটি নতুন ইনস্টলেশনতে সর্বশেষ (লেখার সময়) চালিত উবুন্টু 18.04 এ ত্রুটিটি ঘটতে শুরু করে এবং একমাত্র সম্ভাব্য স্থিরতাটি ছিল একটি (যা আগে এক্সভিএফবি দিয়ে শুরু হয়েছিল ) চালানো হয়েছিল ।exportDISPLAY--disable-dev-shm-usage--no-sandboxexport DISPLAY=":20"Xvfb :20&


ওএমজি আপনাকে ধন্যবাদ। আমি আমাদের ডকার পাত্রে কিছু পরিবর্তন করছি এবং আমি দুর্ঘটনাক্রমে xvfb ছেড়ে চলে এসেছি। আপনি যদি এটি এখানে না রেখে থাকেন তবে আমি কখনই এটি খুঁজে পেতাম না :-)।
রায়ান শিলিংটন

3

জেনকিন্স সার্ভারের সাথে সংহত করার সময় আমিও এই সমস্যার মুখোমুখি হয়েছি, জেনকিন কাজের জন্য আমি রুট ব্যবহারকারীকে ব্যবহার করেছি, যখন আমি ব্যবহারকারীকে অন্য ব্যবহারকারীর সাথে পরিবর্তন করেছি তখন সমস্যাটি স্থির হয়েছিল । আমি নিশ্চিত নই কেন এই ত্রুটিটি মূল ব্যবহারকারীর জন্য ঘটে।

  • গুগল ক্রোম সংস্করণ 71.0
  • ChromeDriver সংস্করণ 2.45
  • CentOS7 সংস্করণ 1.153

অ-রুট ব্যবহারকারী আমার জন্য কাজ করেছিল, ক্রোমিয়ামের জন্য আমার কাছে সঠিক ক্রোম ড্রাইভার সংস্করণ ছিল।
টিকজিট

2

আমার ক্ষেত্রে এটি হয়েছিল যখন আমি আমার ডিফল্ট ব্যবহারকারী প্রোফাইলটি ব্যবহার করার চেষ্টা করেছি:

...
options.addArguments("user-data-dir=D:\\MyHomeDirectory\\Google\\Chrome\\User Data");
...

এই ক্রোমটি ইতিমধ্যে পটভূমিতে চলমান প্রক্রিয়াগুলি পুনরায় ব্যবহার করতে ট্রিগার করেছিল, এইভাবে, ক্রোমড্রাইভার.এক্সে দ্বারা শুরু হওয়া প্রক্রিয়াটি সহজেই শেষ হয়েছিল।

রেজোলিউশন: পটভূমিতে চলমান সমস্ত ক্রোম.এক্সএইসি প্রক্রিয়াগুলিকে হত্যা করুন।


আমার অনুরূপ সমস্যা ছিল, তবে লিনাক্সে - আমার ক্রোম প্রক্রিয়াগুলি স্ক্রিপ্ট ক্র্যাশ হওয়ার পরে সঠিকভাবে বের হয় নি এবং সেগুলি ভুলভাবে পুনরায় ব্যবহার করা হচ্ছে। তাদের হত্যা
হ'ল

2

হিসাবে কনফারেন্সে ক্ষমতা আপডেট করুন

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['todo-spec.js'],
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--disable-gpu', '--no-sandbox', '--disable-extensions', '--disable-dev-shm-usage']
    }
  },

};

2

আমার ক্ষেত্রে, আমি ক্রোম ব্রাউজারের সাহায্যে উইন্ডোজ ওএসে একটি চলমান জার তৈরি করার চেষ্টা করছিলাম এবং এটিতে সেন্টোস সহ ইউনিক্স বাক্সে হেডলেস মোডে একই চালাতে চাই। এবং আমি আমার বাইনারিটি একটি ড্রাইভারের দিকে ইঙ্গিত করছিলাম যা আমি আমার স্যুটটি ডাউনলোড করে প্যাকেজ করেছি। আমার জন্য, এই সমস্যাটি নিম্নরূপে যুক্ত না করেই চলতে থাকে:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--no-sandbox");
System.setProperty("webdriver.chrome.args", "--disable-logging");
System.setProperty("webdriver.chrome.silentOutput", "true");
options.setBinary("/pointing/downloaded/driver/path/in/automationsuite");
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("window-size=1024,768"); // Bypass OS security model
options.addArguments("--log-level=3"); // set log level
options.addArguments("--silent");//
options.setCapability("chrome.verbose", false); //disable logging
driver = new ChromeDriver(options);

যে সমাধানটি আমি চেষ্টা করেছি এবং আমার পক্ষে কাজ করেছি তা হ'ল হোস্ট ভিএম / ইউনিক্স বাক্সে ক্রোম এবং তার সরঞ্জামগুলি ডাউনলোড করুন, অটোমেশন স্যুট এবং বিঙ্গোতে বাইনারিটি ইনস্টল করুন এবং পয়েন্ট করুন! এটি কাজ করে :)

কমান্ড ডাউনলোড করুন:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

কমান্ড ইনস্টল করুন:

sudo yum install -y ./google-chrome-stable_current_*.rpm

গুগল-ক্রোমের নীচে বাইনারি পথ সহ স্যুট আপডেট করুন:

options.setBinary("/opt/google/chrome/google-chrome");

এবং .. এটি কাজ করে!


আমরা এই কোডটি কোথায় যুক্ত করব? আমি আমার। পাশের ফাইলটিতে কোনও সি # কোড দেখতে পাচ্ছি না
পাব্রামগুলি

1

আমার একই সমস্যা ছিল, তবে আমার ক্ষেত্রে ক্রোম আগে ব্যবহারকারী টেম্প ফোল্ডারে ইনস্টল করা হয়েছিল, তার পরে প্রোগ্রাম ফাইলগুলিতে পুনরায় ইনস্টল করা হয়েছিল। সুতরাং এখানে প্রদত্ত যে কোনও সমাধান আমার পক্ষে সহায়ক ছিল না। তবে যদি chrome.exe এর জন্য সমস্ত পথ সরবরাহ করে:

chromeOptions.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");

আমি আশা করি এটি কারও সাহায্য করে =)


নীচে @ শিউইউ ফিক্সের ঠিক বিপরীত বলে মনে হচ্ছে
টবি

1

কোন সমাধান আমার জন্য কাজ। তবে এখানে কার্যনির্বাহী:

maxcounter=5
for counter in range(maxcounter):
    try:           
        driver = webdriver.Chrome(chrome_options=options,
                          service_log_path=logfile,
                          service_args=["--verbose", "--log-path=%s" % logfile])
        break
    except WebDriverException as e:
        print("RETRYING INITIALIZATION OF WEBDRIVER! Error: %s" % str(e))
        time.sleep(10)
        if counter==maxcounter-1:
            raise WebDriverException("Maximum number of selenium-firefox-webdriver-retries exceeded.")

1

আপনি কেবল ক্রোমে খারাপ যুক্তি দেওয়ার জন্য এই ত্রুটিটি পেতে পারেন। উদাহরণস্বরূপ, আমি যদি "headless"সি # ক্রোমড্রাইভারের কাছে আরগ হিসাবে পাস করি তবে তা দুর্দান্তভাবে ছড়িয়ে পড়ে। আমি যদি কোনও ভুল করি এবং ভুল বাক্য গঠন ব্যবহার করি তবে "--headless"আমি DevToolsActivePort file doesn't existত্রুটিটি পেয়েছি ।


1

আমি একই ইস্যুতে দৌড়েছি, আমি ইউবুন্টু, পাইথন এবং অপেরা ব্রাউজারটি ব্যবহার করছি । আমার ক্ষেত্রে সমস্যাটি উত্পন্ন হয়েছিল কারণ আমার অপারেট্রাইভারের একটি পুরানো সংস্করণ ছিল।

সমাধান: ১. নিশ্চিত করুন যে আপনি সর্বশেষ অপেরা ব্রাউজার সংস্করণ ইনস্টল করেছেন (অপেরা বিটা বা অপেরা বিকাশকারী ব্যবহার করবেন না), এর জন্য অফিসিয়াল অপেরা সাইটে যান এবং সেখান থেকে সর্বশেষ অপেরা_স্টেবল সংস্করণটি ডাউনলোড করুন।

  1. সর্বশেষতম অপেরা ড্রাইভার ইনস্টল করুন (আপনার যদি ইতিমধ্যে অপেরা ড্রাইভার ইনস্টল থাকে তবে আপনাকে প্রথমে এটি sudo rm ব্যবহার করতে হবে ...)

উইজেট https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip

   unzip operadriver_linux64.zip
   sudo mv operadriver /usr/bin/operadriver
   sudo chown root:root /usr/bin/operadriver
   sudo chmod +x /usr/bin/operadriver

আমার ক্ষেত্রে সর্বশেষ ছিল 80.0.3987 আপনি দেখতে পারেন

  1. ক্রোমড্রাইভার ইনস্টল করার জন্য ক্রোমড্রাইভার ইনস্টল করার জন্য ক্রোমড্রাইভার ইনস্টল করার জন্য (তবে আমি পরীক্ষার আগে এটি করেছি, এটির প্রয়োজনের বিষয়টি আমার জানা নেই), আগের পদক্ষেপের পদক্ষেপগুলি অনুসরণ করুন: v

  2. উপভোগ করুন এবং আমাকে ধন্যবাদ!

নমুনা সেলেনিয়াম কোড

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Opera()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.quit()

0

দেখে মনে হচ্ছে এই ত্রুটির জন্য অনেকগুলি সম্ভাব্য কারণ রয়েছে। আমাদের ক্ষেত্রে, ত্রুটিটি ঘটেছে কারণ আমাদের কোডে নিম্নলিখিত দুটি লাইন ছিল:

System.setProperty("webdriver.chrome.driver", chromeDriverPath);
chromeOptions.setBinary(chromeDriverPath);

এটি দ্বিতীয় লাইনটি সরিয়ে সমাধান করা হয়েছে।


উপরে @ সার্জি-কনোপ্লিয়ানি ফিক্সের ঠিক বিপরীত মনে হচ্ছে: '(
টবি

আমাদের সেটবাইনরিতে আমরা ক্রোম ড্রাইভার সেট করার চেষ্টা করেছি, যা একটি ভুল বলে মনে হচ্ছে। @ সার্জি-কনপ্লায়ানির ফিক্স সেটবাইনির মাধ্যমে chrome.exe সেট করে।
শিউইউ

আপনার এই কোডটি কোথায় ছিল? আমার কাছে যা আছে তা হ'ল একটি পাশের ফাইল এবং এতে কোনও সি # কোড নেই।
পাব্রামগুলি

0

আমি দোকারের ধারকটিতে বেহাত / মিন্ক এবং সেলেনিয়াম হয়ে ক্রোম চালিয়ে একই সমস্যাটিতে পৌঁছেছি। কিছু বিড়ম্বনার পরে, আমি নীচে পৌঁছেছি behat.ymlযা উপরে উল্লিখিত সুইচগুলি সরবরাহ করে। নোট করুন যে এগুলি সফলভাবে চালিত হওয়ার জন্য আমার পক্ষে সমস্তগুলির প্রয়োজন ছিল।

default:
    extensions:
        Behat\MinkExtension:
            base_url: https://my.app/
            default_session: selenium2
            selenium2:
                browser: chrome
                capabilities:
                    extra_capabilities:
                        chromeOptions:
                            args:
                                - "headless"
                                - "no-sandbox"
                                - "disable-dev-shm-usage"

0

আমার ক্ষেত্রে, আমি একটি কুবারনেটস পরিবেশে রয়েছি যেখানে আমি ডিফল্ট টিএমপিডিআইআর ব্যবহার করতে পারি না কারণ এটি আবর্জনা দিয়ে অস্থায়ী ডিরেক্টরি পূরণ করবে।

তাই আমি এটি অন্য একটি টেম্পডির ব্যবহার করতে ব্যবহার করছিলাম:

driver = new ChromeDriver(new ChromeDriverService.Builder()
                    .withEnvironment(ImmutableMap.of("TMPDIR", customTmpPath))
                    .build(), options);

তবে এখন আমি সর্বশেষে সবকিছু আপগ্রেড করেছি, এটি আর কাজ করবে বলে মনে হয় না। এটি করার জন্য আমার একটি নতুন উপায় খুঁজতে হবে।


0

ক্রোমড্রাইভার কখন ডিবাগিং পোর্ট ক্রোম ব্যবহার করছে তা নির্ধারণ করতে ব্যর্থ হলে এটি ঘটে।

একটি সম্ভাব্য কারণ হ'ল HKEY_CURRENT_USER \ সফ্টওয়্যার \ নীতিগুলি \ গুগল \ ক্রোম \ ব্যবহারকারী ডেটাডির সাথে একটি মুক্ত ত্রুটি

তবে আমার শেষ ক্ষেত্রে এটি অন্য কিছু অজানা কারণ ছিল।

ভাগ্যক্রমে ম্যানুয়ালি পোর্ট নম্বর সেট করা:

final String[] args = { "--remote-debugging-port=9222" };
options.addArguments(args);
WebDriver driver = new ChromeDriver(options);

2
এটি কি ধ্রুব বন্দর? বা আমি এটি কোথায় সন্ধান করতে পারি?
মাইক শায়ান

0

আমার ক্ষেত্রে ভুল পোর্ট নম্বর। সেলিনিয়াম সার্ভারটি শুরু করার সময় পোর্ট নম্বরটি আপনার স্ক্রিপ্টের মতো কিনা তা পরীক্ষা করুন।


-2

আমি ইনস্টল করে এই সমস্যাটি সমাধান করি yum -y install gtk3-devel gtk3-devel-docs ", এটি ঠিক আছে

আমার কাজ env হয়:

Selenium Version 3.12.0
ChromeDriver Version v2.40
Chrome 68 level

আগে:
এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

পরে:
এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


9
পর্যালোচনা থেকে: দয়া করে চিত্রগুলিতে পাঠ্য পোস্ট করবেন না। আপনার উত্তর সম্পাদনা করুন এবং পাঠ্য সহ সেই চিত্রগুলি প্রতিস্থাপন করুন। ধন্যবাদ
সানুন ןɐ কিউপি

1
এটি কি কারও জন্য সমস্যার সমাধান করে? এটি আমার জন্য সমস্যার সমাধান করেনি
বেনড্রাম

-2

যেহেতু এই ধরণের ত্রুটির জন্য এটি সর্বাধিক সক্রিয় বার্তা, তাই আমি আমার সমাধানটি উল্লেখ করতে চেয়েছিলাম (এটি সমাধানের জন্য কয়েক ঘন্টা ব্যয় করার পরে)।

উবুন্টু 18.04-এ, ক্রোম 70 এবং ক্রোমড্রাইভার 2.44 এবং পাইথন 3 ব্যবহার করে আমি উপরে তালিকাভুক্ত সমস্ত বিকল্প অক্ষম করেও একই ডিফল্টসঅ্যাকটিভপোর্ট ত্রুটি পেতে থাকি। পিএস হিসাবে ক্রোমড্রাইভার লগ ফাইলটি দেখিয়েছিল যে আমি ক্রোমড্রাইভারে সেট করা ক্রোমড্রাইভার.বাইনারি_লোকেশন চলছিল, তবে এটি সর্বদা ডেভটুলসঅ্যাকটিভপোর্ট ত্রুটি দিয়েছে। যখন আমি chrome_options.binary_location = '....' সরান এবং এটি ওয়েবড্রাইভার তৈরিতে যুক্ত করি, তখন আমি এটিকে ঠিকঠাক করে কাজ করব। ওয়েবড্রাইভার.ক্রোম ('/ ... ... / ক্রোমড্রাইভারের পথে', ক্রোম_প্লেশনগুলি = ক্রোম_অপশন)

আপনার মতামতের জন্য সবাইকে ধন্যবাদ যে আমাকে বিষয়টি বুঝতে এবং সমাধান করতে বাধ্য করেছে।

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