Как проверить элемент расширения Firefox с помощью Selenium - PullRequest
0 голосов
/ 15 февраля 2019

Мне нужно извлечь ссылку из уведомления о расширении с использованием Selenium для тестирования многих веб-сайтов.

Расширение, которое я тестирую, это пример в github полный код, доступный здесь , который показывает нажатую ссылку в уведомлении, если пользователь щелкнул ссылку на любом из сайтов Mozilla.

background-script.js

/*
Log that we received the message.
Then display a notification. The notification contains the URL,
which we read from the message.
*/
function notify(message) {
  console.log("background script received message");
  var title = browser.i18n.getMessage("notificationTitle");
  var content = browser.i18n.getMessage("notificationContent", message.url);
  browser.notifications.create({
    "type": "basic",
    "iconUrl": browser.extension.getURL("icons/link-48.png"),
    "title": title,
    "message": content
  });
}

/*
Assign `notify()` as a listener to messages from the content script.
*/
browser.runtime.onMessage.addListener(notify);

manifest.json:

{

  "manifest_version": 2,
  "name": "__MSG_extensionName__",
  "description": "__MSG_extensionDescription__",
  "version": "1.0",
  "homepage_url": "https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n",
  "icons": {
    "48": "icons/link-48.png"
  },

  "permissions": ["notifications"],

  "background": {
    "scripts": ["background-script.js"]
  },

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content-script.js"]
    }
  ],

  "default_locale": "en"
}

contentscript.js

/*
If the click was on a link, send a message to the background page.
The message contains the link's URL.
*/
function notifyExtension(e) {
  var target = e.target;
  while ((target.tagName != "A" || !target.href) && target.parentNode) {
    target = target.parentNode;
  }
  if (target.tagName != "A")
    return;

  console.log("content script sending message");
  browser.runtime.sendMessage({"url": target.href});
}

/*
Add notifyExtension() as a listener to click events.
*/
window.addEventListener("click", notifyExtension);

Я хочу собрать текст уведомления (ссылка) когда появится.Я буду вводить много сайтов в Selenium.

Мой вопрос: как я могу проверить уведомление с помощью Selenium?Когда я щелкаю правой кнопкой мыши на уведомлении, я не получаю параметры, аналогичные тем, которые есть в браузере.поэтому я не могу найти имя элемента для использования с Selenium.Любые советы будут полезны.

1 Ответ

0 голосов
/ 16 февраля 2019

Уведомления, созданные расширением, принадлежат операционной системе, а не браузеру.Вы не сможете просмотреть их как обычный элемент HTML.

Что вы можете сделать, это прослушать browser.notifications.onClosed или browser.notifications.onClicked события и получить эту информацию в коде расширения.

Ссылки:

...