Очистите таблицу Dynami c, так как она получает новую запись через произвольные интервалы в режиме реального времени. - PullRequest
0 голосов
/ 10 января 2020

Я очищаю таблицу по ссылке http://dextrader.net/# / app / электронных таблиц / 1 . В идеале, когда программа будет полностью реализована, моя программа будет делать следующее:

1.Инициально запустить скребок

Проверьте, есть ли новые строки (определяется по столбцам "цена закрытия" или "пипсы" - 0 или столбец "выигрыш" пуст. Если новые строки доступны, очистите их, либо дождитесь для вставки новой строки Когда новые строки вставляются (может быть до 4 за раз), очищайте их, но не очищайте ранее очищенные строки, которые удовлетворяют условиям на шаге 2. (это будет достигается сохраненными значениями переменных)

Моя единственная реальная проблема на данный момент заключается в том, как я могу обнаружить, если это возможно, вновь вставленную строку без выполнения временных интервалов, поскольку строки вставляются в случайные моменты времени. Мой текущий код для очистки при запуске ниже.

          static void Main(string[] args)
        {



            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("http://dextrader.net/#/app/spreadsheet/1");
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromMinutes(30));

            Func<IWebDriver, bool> waitForElement = new Func<IWebDriver, bool>((IWebDriver Web) =>
            {
                Console.WriteLine(Web.FindElements(By.XPath("//html/body/div[2]/section/div/div/div[4]/div/table/tbody/tr[1]")));
                return true;
            });
            wait.Until(waitForElement);

            var rows = driver.FindElements(By.XPath("//html/body/div[2]/section/div/div/div[4]/div/table/tbody/tr"));


            int i = 0;
            IList<IWebElement> rowTD;
            string signal;
            foreach (var row in rows)
            {
                List<string> currentRowValues = new List<string>();
                i++;
                rowTD = row.FindElements(By.TagName("td"));

                if (rowTD[5].Text.Equals("0"))//Check if Close Price  column is 0
                {
                    var openTime = rowTD[0].Text;
                    var closeTime = rowTD[1].Text;
                    var asset = rowTD[2].Text;
                    var direction = rowTD[3].Text;
                    var openPrice = rowTD[4].Text;
                    signal = direction + " " + asset + " @ " + openPrice + Environment.NewLine + "Open time: " + openTime + Environment.NewLine + "Close time: " + closeTime;

                    var bot = new TelegramBotClient("xxxxxxx");
                    var s = bot.SendTextMessageAsync("-xxxxxx", signal);
                    signal = string.Empty;
                }

            }

        }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...