Selenium Webdriver не загружает некоторые URL [дубликаты]

Строки в Java неизменяемы. Это означает, что всякий раз, когда вы пытаетесь изменить / изменить строку, вы получаете новый экземпляр. Вы не можете изменить исходную строку. Это сделано для того, чтобы эти экземпляры строк могли кэшироваться. Типичная программа содержит множество ссылок на строки и кеширование этих экземпляров, что может уменьшить объем памяти и увеличить производительность программы.

При использовании оператора == для сравнения строк вы не сравниваете содержимое строки , но фактически сравнивают адрес памяти. Если они равны, в противном случае они вернут true и false. Если значение равно в строке, сравнивает содержимое строки.

Итак, вопрос в том, что все строки кэшируются в системе, как получается == возвращает false, тогда как equals возвращает true? Ну, это возможно. Если вы создадите новую строку, например String str = new String("Testing"), вы создадите новую строку в кеше, даже если в кеше уже содержится строка с тем же содержимым. Короче говоря, "MyString" == new String("MyString") всегда будет возвращать false.

Java также говорит о функции intern (), которая может использоваться в строке, чтобы сделать ее частью кеша, поэтому "MyString" == new String("MyString").intern() вернет true.

Примечание: == оператор намного быстрее, чем равен только потому, что вы сравниваете два адреса памяти, но вы должны быть уверены, что код не создает новые экземпляры String в коде. В противном случае вы столкнетесь с ошибками.

1
задан DebanjanB 22 December 2017 в 06:53
поделиться

1 ответ

Ошибка говорит все:

org.openqa.selenium.WebDriverException: Reached error page: about:neterror?e=connectionFailure&u=https%3A//192.168.1.20/network.cgi&c=UTF-8&f=regular&d=Firefox%20%E6%97%A0%E6%B3%95%E5%BB%BA%E7%AB%8B%E5%88%B0%20192.168.1.20%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%BF%9E%E6%8E%A5%E3%80%82

Это типичная ошибка сети, но основная проблема заключается в том, что в случае сетевой ошибки для Valid и Absolute URL это ожидается для экземпляра WebDriver, т.е. driver, чтобы вернуть значение Success со значением null в соответствии с обновленным Go Command Spec . WebDriver должен возвращать ошибку с неизвестной ошибкой кода ошибки.

Эта проблема все еще ожидает Selenium Team с Issue#4475 , которая будет адресована GeckoDriver Team через Issue#770 , которая зависит от Mozilla Issue ID#1312679

2
ответ дан DebanjanB 15 August 2018 в 18:16
поделиться
  • 1
    Большое спасибо за ваш ответ. Я нашел проблему. Прерывание сети из-за того, что каждый раз, когда я применяю эти данные, конец «сервера» будет сброшен (скорее, как проблема с конфигурацией), и на каждой вкладке есть много форм, но каждый раз, когда вам не нужно нажимать эти изменения, я имею в виду вы можете вносить эти изменения много раз, но применять (так как есть кнопка Apply) только один раз. во всяком случае, действительно действительно THX снова. – Stanford亮 21 December 2017 в 01:25
Другие вопросы по тегам:

Похожие вопросы: