Hướng dẫn python selenium don t close browser - python selen không đóng trình duyệt

Tôi đang sử dụng selenium để mở một số cửa sổ trình duyệt vì lý do tiếp thị. Tôi chỉ đơn giản là mở các nguồn tiếp thị của mình, đăng nhập qua selenium và bắt đầu làm việc.

Vấn đề là, sau khi mã được thực thi Selenium đóng cửa sổ.

Tất cả các giải pháp chưa từng giúp nhiều cho đến nay.

Tôi có 13 Windows ATM., Trông như thế này:

def open_instagram():    
    try:
        # Connect
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--incognito")
        browser = webdriver.Chrome('drivers/chromedriver.exe', chrome_options=chrome_options)
        browser.set_window_size(1800, 900)
        browser.get("https://www.instagram.com/accounts/login/?hl=de")
        browser.find_element(By.NAME, 'username').send_keys('MYEMAIL', Keys.TAB, 'MYPW', Keys.ENTER)
    except Exception as e:
        print (e, 'Instagram')

open_instagram()

Giải pháp gần nhất mà tôi tìm thấy là thêm điều này vào cuối tập lệnh của tôi, nhưng bằng cách nào đó nó sẽ chỉ giữ 5 cửa sổ mở, so với đóng 5 cửa sổ và mở 5 cửa sổ mới tiếp theo:

while True:
    pass

Tôi chỉ muốn selen giữ tất cả các cửa sổ trình duyệt mở, cho đến khi tôi đóng chúng bằng tay.

Tôi đã googled cho câu trả lời, nhưng

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
0 nên thường xuyên được đề cập không phù hợp với tôi. Cửa sổ Chrome mà bài kiểm tra đang chạy vẫn còn mở.

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()

Bất kỳ ý tưởng? Tôi đang sử dụng Selenium Server 2.8.0 với Python 2.6 và chủ yếu sử dụng Windows Chrome 14 để kiểm tra.

Hỏi ngày 11 tháng 10 năm 2011 lúc 22:00Oct 11, 2011 at 22:00

Hướng dẫn python selenium don t close browser - python selen không đóng trình duyệt

9

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
1 và
def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
2 là hai phương pháp khác nhau để đóng phiên trình duyệt trong selenium webdriver.

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
1 - Nó đóng cửa sổ trình duyệt mà tập trung được đặt.

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
2 - Về cơ bản, nó gọi phương thức Driver.dispose, lần lượt đóng tất cả các cửa sổ trình duyệt và kết thúc phiên webDriver một cách duyên dáng.

Bạn nên sử dụng

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
2 bất cứ khi nào bạn muốn kết thúc chương trình. Nó sẽ đóng tất cả các cửa sổ trình duyệt đã mở và chấm dứt phiên webDriver. Nếu bạn không sử dụng
def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
2 vào cuối chương trình, phiên webDriver sẽ không đóng đúng và các tệp sẽ không bị xóa bộ nhớ. Điều này có thể dẫn đến lỗi rò rỉ bộ nhớ.

Hướng dẫn python selenium don t close browser - python selen không đóng trình duyệt

Đã trả lời ngày 18 tháng 8 năm 2016 lúc 12:34Aug 18, 2016 at 12:34

Hướng dẫn python selenium don t close browser - python selen không đóng trình duyệt

Sneha Singhsneha SinghSneha Singh

5015 Huy hiệu bạc6 Huy hiệu Đồng5 silver badges6 bronze badges

3

Bạn thực sự tạo ra một phiên selen thứ hai trong chức năng reverdown () của bạn. Bạn cần đặt phiên được tạo trong Setup () vào một biến thể hiện, sau đó đóng phiên đó trong Teardown ().

class TestFoo(unittest.TestCase):
    def setUp(self):
        self.selenium = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
        self.selenium.start()

    def tearDown(self):
        self.selenium.stop()

    def test_bar(self):
        self.selenium.open("/somepage")
        #and so forth

Đã trả lời ngày 29 tháng 10 năm 2011 lúc 1:07Oct 29, 2011 at 1:07

Tôi đã làm việc với trình điều khiển web trong cả Java và C# và tôi sử dụng

Trong Java:

WebDriver driver;      
driver.quit();

Trong C#:

IWebDriver Driver;
Driver.Quit();

Đã trả lời ngày 8 tháng 11 năm 2013 lúc 23:02Nov 8, 2013 at 23:02

user2062360user2062360user2062360

3053 Huy hiệu bạc8 Huy hiệu Đồng3 silver badges8 bronze badges

Trong Python, sử dụng Selenium WebDriver cho Chrome, tôi cần gọi

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
7 trước
def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
8:

from selenium import webdriver

trong setup ():

options = webdriver.chrome.options.Options()
options.add_argument("--disable-extensions") # optional and off-topic, but it conveniently prevents the popup 'Disable developer mode extensions' 
self.driver = webdriver.Chrome(chrome_options=options)

Trong reverdown ():

self.driver.stop_client()
self.driver.close()

Đã trả lời ngày 18 tháng 8 năm 2016 lúc 12:07Aug 18, 2016 at 12:07

RemiremiRemi

1312 Huy hiệu đồng2 bronze badges

1

WebDriver driver;      
driver.quit();

Trên đây sẽ đóng tất cả các kính gió trình duyệt mở.

while True:
    pass
0

Điều này sẽ đóng cửa sổ trình duyệt hiện tại trong tiêu điểm.

Kate Paulk ♦

30.9k8 Huy hiệu vàng52 Huy hiệu bạc108 Huy hiệu Đồng8 gold badges52 silver badges108 bronze badges

Đã trả lời ngày 14 tháng 5 năm 2015 lúc 9:59May 14, 2015 at 9:59

Sử dụng Testng và Java. Giả sử phương pháp này được đặt trong một số lớp Basetest được kế thừa bởi lớp kiểm tra, vì vậy hãy thử điều này:
Assume this method is located in some BaseTest class which is inherited by test class, so try this:

while True:
    pass
1

Đã trả lời ngày 30 tháng 4 năm 2014 lúc 6:37Apr 30, 2014 at 6:37

user1829657user1829657user1829657

792 Huy hiệu vàng2 Huy hiệu bạc7 Huy hiệu đồng2 gold badges2 silver badges7 bronze badges

2

Bạn có thể sử dụng

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
9 hoặc
class TestFoo(unittest.TestCase):
    def setUp(self):
        self.selenium = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
        self.selenium.start()

    def tearDown(self):
        self.selenium.stop()

    def test_bar(self):
        self.selenium.open("/somepage")
        #and so forth
0.

Sử dụng

def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
8 cho một trình duyệt để đóng và
class TestFoo(unittest.TestCase):
    def setUp(self):
        self.selenium = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
        self.selenium.start()

    def tearDown(self):
        self.selenium.stop()

    def test_bar(self):
        self.selenium.open("/somepage")
        #and so forth
2 là đóng tất cả các trình duyệt bằng WebDriver. Nhưng tại sao
def test_getResults(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.start()
    # do stuff

def tearDown(self):
    sel = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
    sel.close()
    sel.stop()
8 không đóng cửa vào thời gian chạy, nhưng nó bị đóng cửa khi gỡ lỗi tôi không biết.

Kenorb

3671 Huy hiệu vàng3 Huy hiệu bạc15 Huy hiệu đồng1 gold badge3 silver badges15 bronze badges

Đã trả lời ngày 4 tháng 6 năm 2014 lúc 9:41Jun 4, 2014 at 9:41

1

Đây là những gì làm việc cho tôi:

while True:
    pass
2

Tôi có điều này trong các sự kiện trước khi xây dựng của mình trong Giải pháp Visual Studio. Điều này có thể được chạy từ dòng lệnh, chỉ cần gọi nó trong dự án của bạn và bạn nên được thiết lập.

Tôi cũng có dòng sau để đóng trình điều khiển IE trong trường hợp không thực thi

class TestFoo(unittest.TestCase):
    def setUp(self):
        self.selenium = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
        self.selenium.start()

    def tearDown(self):
        self.selenium.stop()

    def test_bar(self):
        self.selenium.open("/somepage")
        #and so forth
4 hoặc
class TestFoo(unittest.TestCase):
    def setUp(self):
        self.selenium = selenium('localhost', 4444, "*chrome", 'http://blackpearl/')
        self.selenium.start()

    def tearDown(self):
        self.selenium.stop()

    def test_bar(self):
        self.selenium.open("/somepage")
        #and so forth
5

while True:
    pass
3

Đã trả lời ngày 29 tháng 9 năm 2016 lúc 15:06Sep 29, 2016 at 15:06

1

Nếu bạn sử dụng chế độ không đầu, bạn vẫn thấy chúng không đóng, hãy thử giải pháp này 1) Nhận trình điều khiển làm người độc thân

while True:
    pass
4

2) Sử dụng Đóng và Thoát trong Khối cuối cùng

while True:
    pass
5

Kết quả: Bạn sẽ chỉ sử dụng một phiên bản tại thời điểm và nếu bạn thấy Trình quản lý tác vụ, bạn sẽ không tìm thấy sự treo máy của Chromedriver và Chrome.

Đã trả lời ngày 5 tháng 2 năm 2019 lúc 21:46Feb 5, 2019 at 21:46

Có thể giải pháp của tôi sẽ không phải là một giải pháp siêu thông minh, nhưng trước mỗi trường hợp kiểm tra tự động, tôi đã đặt:

while True:
    pass
6

Tối đa hóa cửa sổ

while True:
    pass
7

Và để đóng tất cả các cửa sổ của trường hợp thử nghiệm tôi sử dụng:

while True:
    pass
8

Và điều này làm việc cho tôi trong Python.

Hướng dẫn python selenium don t close browser - python selen không đóng trình duyệt

Sophia

3673 Huy hiệu bạc17 Huy hiệu đồng3 silver badges17 bronze badges

Đã trả lời ngày 7 tháng 2 năm 2019 lúc 20:02Feb 7, 2019 at 20:02

Điều này sẽ chỉ đóng cửa sổ, phiên selen của bạn vẫn tồn tại và bạn có thể thực hiện xử lý tiếp theo của mình bằng trình điều khiển selen.

while True:
    pass
9

Đã trả lời ngày 2 tháng 12 năm 2021 lúc 10:28Dec 2, 2021 at 10:28

1

Làm thế nào để tôi ngăn trình duyệt đóng trong selenium?

Làm cách nào để ngăn trình duyệt Selenium đóng cửa ?..
từ selen.WebDriver.trình duyệt Chrome.Tùy chọn Nhập tùy chọn ..
Chrome_Options = Tùy chọn ().
Chrome_Options.add_experimental_option ("tách ra", đúng).

Làm cách nào để giữ một phiên trình duyệt còn sống trong selenium?

Chúng ta có thể giữ một phiên sống cho các tập lệnh selenium dài trong tự động hóa.Trong trình duyệt Chrome, điều này có thể đạt được với sự trợ giúp của các lớp Chromeoptions và khả năng.Lớp khả năng có thể có được khả năng của trình duyệt bằng cách sử dụng phương thức - getCapabilites.with the help of the ChromeOptions and Capabilities classes. Capabilities class can get the capabilities of the browser by using the method – getCapabilities.

Làm thế nào để tôi đóng và mở lại một trình duyệt trong selenium webdriver?

Trong Selenium WebDriver, có hai phương thức để đóng cửa sổ trình duyệt, đóng () và thoát ().close() and quit() .

Bạn có thể sử dụng selen mà không cần mở trình duyệt Python không?

Chúng tôi có thể thực hiện thử nghiệm selen mà không cần trình duyệt.Điều này đạt được bằng cách kích hoạt thực thi ở chế độ không đầu.Việc thực hiện không đầu có thể làm giảm việc sử dụng các tài nguyên chính và đang được áp dụng rộng rãi.. This is achieved by triggering the execution in a headless mode. The headless execution can decrease the utilization of key resources and is being adopted widely.