相关疑难解决方法(0)

在Django中进行硒测试后数据库仍在使用中

我有一个Django项目,我将在其中开始编写Selenium测试。第一个看起来像这样:

from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

from core.models import User
from example import settings

BACH_EMAIL = "johann.sebastian.bach@classics.com"
PASSWORD = "password"


class TestImportCRMData(StaticLiveServerTestCase):
    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        cls.webdriver = webdriver.Chrome()
        cls.webdriver.implicitly_wait(10)

    @classmethod
    def tearDownClass(cls):
        cls.webdriver.close()
        cls.webdriver.quit()
        super().tearDownClass()

    def setUp(self):
        self.admin = User.objects.create_superuser(email=BACH_EMAIL, password=PASSWORD)

    def test_admin_tool(self):
        self.webdriver.get(f"http://{settings.ADMIN_HOST}:{self.server_thread.port}/admin")

        self.webdriver.find_element_by_id("id_username").send_keys(BACH_EMAIL)
        self.webdriver.find_element_by_id("id_password").send_keys(PASSWORD)
        self.webdriver.find_element_by_id("id_password").send_keys(Keys.RETURN)
        self.webdriver.find_element_by_link_text("Users").click()
Run Code Online (Sandbox Code Playgroud)

当我运行它时,测试通过但仍然以以下错误结束:

Traceback (most recent call last):
  File "C:\Users\pupeno\Documents\Eligible\code\example\venv\lib\site-packages\django\db\backends\utils.py", line 83, in _execute
    return self.cursor.execute(sql)
psycopg2.OperationalError: database "test_example" is being accessed by other users
DETAIL: …
Run Code Online (Sandbox Code Playgroud)

python django selenium selenium-webdriver liveservertestcase

7
推荐指数
1
解决办法
489
查看次数

Selenium 中的 pageLoadTimeout 不起作用

我在 Java 中使用 selenium 使用以下代码。我添加了 4 秒的 pageLoadTimeout,但是,驱动程序继续等待,直到加载完整页面。有什么帮助吗?

System.setProperty("webdriver.gecko.driver", System.getProperty("user.home") + "\\Desktop\\geckodriver.exe");

        FirefoxBinary b = new FirefoxBinary(new File(System.getProperty("user.home") + "\\desktop\\Mozilla Firefox\\firefox.exe"));
        FirefoxOptions options = new FirefoxOptions().setBinary(b);
        driver = new FirefoxDriver(options);
        //driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);


        driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl");
List<WebElement> facilitySectionList = driver.findElements(By.className("facilitiesChecklistSection"));
Run Code Online (Sandbox Code Playgroud)

java selenium webdriver selenium-webdriver pageloadtimeout

5
推荐指数
1
解决办法
2万
查看次数

用显式等待替换隐式等待(selenium webdriver &amp; java)

如何用显式等待替换这种隐式等待?

驱动程序 = 新的 ChromeDriver(功能);

driver.manage().deleteAllCookies();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

这在 Before 方法中使用。我能够替换代码中的所有 Thread.sleep(),但我不确定对这个做了什么。

java selenium selenium-webdriver webdriverwait implicitwait

5
推荐指数
1
解决办法
3930
查看次数

在selenium中使用隐式等待

我是初学者。我理解等待的基本作用,但我对互联网上不同的教程如何放置和解释它感到困惑。例如,在下面的代码中,它被放置在加载 URL 之前。那么,是否只是等待 URL 加载或查找元素或两者兼而有之?如果我在 try 块中使用隐式等待一次,它是否适用于我在代码中执行的每个元素搜索?

from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
Run Code Online (Sandbox Code Playgroud)

selenium selenium-chromedriver selenium-webdriver geckodriver implicitwait

4
推荐指数
1
解决办法
2万
查看次数

隐式等待、显式等待、流畅等待

隐式、显式、流利等之间有什么区别?

如果我们在隐式等待中设置 10 秒,并且在 10 秒之前,则在 3 秒内只有元素被定位。

到时候会发生什么?它将等待 10 秒钟或继续进行。

selenium selenium-webdriver webdriverwait fluentwait implicitwait

1
推荐指数
1
解决办法
4081
查看次数