Hilfe bei einem Chat auslesen

12/07/2019 09:44 KingwondA#1
Hi,

ich suche hilfe um bei meinen Problem vorran zukommen.
Ich möchte gerne den Chat von eBay Kleinanzeigen mit meiner winforms benutzen, nachrichten schreiben und absenden klappt :)

Ein wenig hilfe bräuchte ich bei den Chat nachrichten^^

ich benutze die Bibliothek Selenium für das Projekt.

Code schicke ich gleich hitnerhehr..
12/10/2019 15:57 KingwondA#2
Das ist der Code vom eBay Chat Fenste (wenn man auf "meine Nachrichten" klickt)
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace eBayKL_Chat
{
    public partial class Chat : Form
    {
        IWebDriver driver = new ChromeDriver();
        public Chat()
        {
            InitializeComponent();
        }
        private void Chat_Load(object sender, EventArgs e)
        {
            driver.Navigate().GoToUrl("https://www.ebay-kleinanzeigen.de/m-nachrichten.html");
        }

        private void btnSenden_Click(object sender, EventArgs e)
        {
            driver.FindElement(By.XPath("/html/body/div[1]/div[3]/section[3]/div[2]/div/div[2]/div[1]/textarea")).SendKeys(textBox1.Text);
           
        }


    }
}
Das ist der Code um eBayKL aufzurufen und den Chat.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;

namespace eBayKL_Chat
{
    public partial class Form1 : Form
    {
        IWebDriver driver = new ChromeDriver();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        driver.Navigate().GoToUrl("https://www.ebay-kleinanzeigen.de/m-einloggen.html?targetUrl=/");
        driver.Manage().Window.Maximize();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Benutzernamen aus der Textbox in das Formular eintragen
            driver.FindElement(By.Id("login-email")).SendKeys(txtBenutzer.Text);
            // Passwort aus der Textbox in das Formular eintragen
            driver.FindElement(By.Id("login-password")).SendKeys(txtPasswort.Text);
            // BtnEinloggen auf der Webseite klicken
            driver.FindElement(By.Id("login-submit")).Click();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Chat openForm = new Chat();
            openForm.Show();
        }
    }
}
Ich bin echt am verzweifeln wie ich den Chat und die einzelenen Leute auslesen soll.

Ich bin für jede Hilfe sehr dankbar
01/26/2020 17:23 Melli-#3
Hier schreibt ja wirklich keiner rein..

Das einfachste was man mit Selenium machen könnte:
- auf die Chatseite navigieren
- HTML Code von der Seite runterladen
- nach einem bestimmten Muster suchen in dem die Nachrichten angezeigt werden
- mit RegEx durchsuchen
- String splitten sodass du später nur noch die Nachrichten hast
- Nachrichten anzeigen lassen

Eine kleine Frage am Rande:
- wenn du den Chat auslesen willst, wieso maximierst du dann Selenium anstatt es zu minimieren / zu verstecken? Dann soll doch scheinbar der Text irgendwo angezeigt werden? - Sieht halt später wenn das ganze zum Anwender geht nicht mehr so schön aus :P
02/01/2020 15:39 KingwondA#4
Quote:
Originally Posted by Melli- View Post
Hier schreibt ja wirklich keiner rein..

Das einfachste was man mit Selenium machen könnte:
- auf die Chatseite navigieren
- HTML Code von der Seite runterladen
- nach einem bestimmten Muster suchen in dem die Nachrichten angezeigt werden
- mit RegEx durchsuchen
- String splitten sodass du später nur noch die Nachrichten hast
- Nachrichten anzeigen lassen

Eine kleine Frage am Rande:
- wenn du den Chat auslesen willst, wieso maximierst du dann Selenium anstatt es zu minimieren / zu verstecken? Dann soll doch scheinbar der Text irgendwo angezeigt werden? - Sieht halt später wenn das ganze zum Anwender geht nicht mehr so schön aus :P
Sorry hatte es schon lange gelöst gehabt.

es maximieren tue ich damit ich sehen kann was es macht.

ich wollte es headless starten nicht minimiert (habs hinbekommen)

Dein Ansatz ist zu viel schwachsinn.

1. Mit selnium auf die Seite navigieren
2. mit innerhtml Chat und den anderen zeugs auslesen
3. mit xpath sagen wo er sich was ziehen soll
4. fertig.