Почему обычно являются теги всем нижним регистром? [закрытый]

Как вы упомянули, вы пытаетесь найти элемент с текстом как Accounts (n) , где n = 1, 2, 3 ... и еще пару элементов с linkText [113 ] как Добавить новую учетную запись и Просмотр всех учетных записей существует, вместо использования partialLinkText было бы лучше использовать XPath , и вы можете использовать следующее решение:

  • XPath :

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//li/a[@class='first accounting_page_menu' and starts-with(@href,'/accounting/view_all_accounts?')][starts-with(.,'Accounts')]"))).click();
    

Обновление

Согласно обсуждению [ 112] Официальные стратегии поиска для веб-драйвера Селектор текста с частичной ссылкой предпочтительнее, чем Селектор XPath . Однако согласно этому сценарию использования из-за наличия похожих текстов ссылок было бы проще создать XPath .

10
задан Jeff Atwood 18 April 2009 в 10:49
поделиться

7 ответов

Спросите инженера причина, почему что-то - определенный путь, и они пойдут на многое для понимания этого.;)

В этом случае я был бы склонен объяснить распространенность нижнего регистра комбинацией лени (программисты, не готовые рассматривать вопросы, которые Вы поднимаете), и имитация (после того как Вы видите сделанный определенный путь на сайте S, Вы склонны повторно реализовывать его для сайта S с подобными предположениями).

Конечно, кажется выполнимым сохранить теги таким способом, которым случай не имеет значения (в целях отсортировать, запрашивая и так далее), но отображает теги с капитализацией, первоначально предназначенной.

4
ответ дан 3 December 2019 в 14:00
поделиться

Как Вы уже заметили, это предотвращает дублирование. Люди не последовательны в своей капитализации. Только посмотрите на теги здесь и заметьте, что люди не могут решить, "объективно ли это-c", "objc" или "objectivec". Добавьте "Objective C", "Цель-c" и так далее, и у Вас была бы реальная путаница.

Обратите внимание, что я не говорю, что было бы невозможно иметь дело с прописными буквами, просто трудными. Например, как Вы знаете корректную капитализацию? Просто примите первый, вводимый как корректный? Полагаться на модераторов для чистки?

28
ответ дан 3 December 2019 в 14:00
поделиться

Различные случаи должны быть всегда считаться эквивалентными для тегов.

Другая причина сохранить Ваши нормализованные теги. Единственная нормализованная версия содержит принятый случай, и теги связаны с помощью many-many таблицу ссылки. Сравнение с таблицей тега сделано нечувствительное к регистру, таким образом, никогда не будет дубликатов.

4
ответ дан 3 December 2019 в 14:00
поделиться

Я соглашаюсь, что в принципе это могло быть сделано более сложным способом. Например, Вы могли реализовать метрику подобия, которая могла распознать все их как являющиеся вероятными синонимами:

  • IBM
  • ibm
  • I B M
  • I. B. M.
  • I.B.M.

Однако существует компромисс между увеличенным временем выполнения (не говоря уже об усилии по разработке) и увеличением утилиты.

Это также был мой общий опыт, что, поскольку эвристика становится более сложной, их виды отказа становятся более таинственными и причудливыми. По крайней мере, convert-alphabetics-to-standard-case техника легка для людей понять и сделать в их головах, когда у них есть вопросы.

0
ответ дан 3 December 2019 в 14:00
поделиться

Это походит на актуальный вопрос мне. Я уверен, что они могли придумать некоторый простой парсинг для превращения в капитал каждого слова (разделенный тире), но как Вы будете знать что ее воображаемое быть IBM вместо IBM? Я думаю, что кто-то должен был бы вручную изменить справочную таблицу тега для выполнения этого.

0
ответ дан 3 December 2019 в 14:00
поделиться

(Я не советую ни для какого конкретного сайта или системы в этом ответе - каждая определенная система может иметь свои собственные соображения),

Я предполагаю, что причина состоит в том, чтобы предотвратить дублирование и сортировку простоты или идентификацию (легче, если Вы не должны рассматривать несколько возможностей). И возможно поддержать некоторую непротиворечивость, поскольку много интерфейсов интернет-пользователя приспособлены к людям, которые, вероятно, иногда потрудятся использовать для своей выгоды правильно и иначе не).

Но затем, это - проблемы так или иначе, потому что существует слишком часто больше чем один способ относиться к чему-то. Если Ваши теги когда-либо используются в качестве символов в своего рода сценарии, конфигурации или коде (например, почтовые фильтры, устанавливая файлы, командные строки), хорошо иметь некоторую простую конвенцию для specifing их, и если все символы имеют подобное значение, позволяя или различая различные изменения случая, deliminations, и т.д. может быть проблематичным. Как пользователь UNIX, я пытаюсь сохранить имена файлов простыми, короткими, строчными, и без специальных символов и moreso, когда они - (например), имена почтового ящика или исходные файлы - поскольку их придется, вероятно, ввести и указать во многих контекстах, где выполнение иначе будет неудобно.

С другой стороны, когда использование сложного графического или веб-интерфейса, который позволяет легкий выбор среди списка, завершение введенной записи, предлагает самые близкие соответствия, и т.д., имеет смысл позволять своего рода отображение. Дайте каждому тегу короткое простое строчное имя идентификации, но позвольте давать ему также "длинное" или "человеческое" имя, которое покажут, где он имеет смысл. Теги могут быть однозначно определены и указаны их кратким названием, но считаны более удобно их длинным именем.

Это подобно тому, как имена пользователей работают во многих системах. Я не выбрал бы имя пользователя смешанного случая и скорее имел бы имена пользователей рассматриваться нечувствительный к регистру (таким образом, я буду просто использовать случай, который имеет смысл в системе, в которой я нахожусь, который является нижним регистром в Unix, но верхним регистром в некоторых других старых системах). Затем большинство систем имеет некоторую другую информацию, хранившую о пользователях, как их длинное или полное имя, которое более хорошо читать, и поэтому много пользовательских интерфейсов (например, Windows XP, Mac OS, и я предполагаю также некоторые более новые настольные интерфейсы Unix как GNOME и KDE), дисплей на настольных селекторах входа в систему, сообщениях, и т.д.

В случае тегов для общественных систем в сети я предполагаю, что решение проблемы дублирования немного находится на одном уровне модерирования к тегам, даже если только самим сообществом и способностью переименовать и объединить теги (в отличие от имен пользователей в большинстве случаев) или отредактировать их длинные имена, в случае, если что-то было mistagged.

2
ответ дан 3 December 2019 в 14:00
поделиться

При наборе текста вам придется включить заглавные буквы, чтобы все было в верхнем регистре. Люди ленивы.

-1
ответ дан 3 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

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