Я абсолютный новичок в программировании и пытаюсь найти элемент из веб-инструмента, используя Selenium и Python. Мне пришлось искать относительный путь, поскольку абсолютное значение пути DIV постоянно меняется. Используя ChroPath, я нашел относительный путь.

Абсолютный путь: / html / body / div [4] / div / div / div / div / div [5] / div / div [31] / div / table / tbody / tr [2] / td [2] / DIV / DIV / стол / TBODY / тр / тд / дел

Здесь элемент, который находится в div [31], иногда становится div [30] или div [32]. Я искал в Интернете и обнаружил, что мне нужно искать относительный путь вместо абсолютного пути.

Поэтому я попробовал метод относительного пути.

Строка HTML:

// div class = "vp-btnc-text" xpath = "1"> Планирование емкости CS-CORE

Относительный путь, предоставленный Chropath: // div [содержит (text (), «Планирование мощностей CS-CORE»)]

Моя строка кода, которую я пробую, выглядит так: driver.find_element_by_xpath ('// div [содержит (text (),' CS-CORE Capacity Planning ')]'). Click ()

Я получаю сообщение об ошибке: driver.find_element_by_xpath ('// div [содержит (text (),' Планирование емкости CS-CORE ')]') ^ SyntaxError: неверный синтаксис

Нужна помощь, чтобы решить проблему, пожалуйста.

1
Vinay Prakash 27 Май 2019 в 20:56

2 ответа

Лучший ответ

Может быть, добавить явное время ожидания или неявное ожидание Пример:

WebElement messageElement = wait.until( ExpectedConditions.presenceOfElementLocated(By.id("AnotherElementBeforeThisElementIsLoaded")) );

Или неявное ожидание:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

Также

driver.findElement(by.xpath(//divclass='vp-btnc-text' xpath='1'>CS-CORE Capacity Planning));

Иногда вам нужно изменить двойные кавычки на одинарные для xpath.

1
DebanjanB 27 Май 2019 в 18:51

Вставьте xpath внутри двойных кавычек, как показано ниже.

driver.find_element_by_xpath("//div[contains(text(),'CS-CORE Capacity Planning')]").click()
0
Patel Romil 2 Авг 2019 в 06:56