You не может использовать XPath
с selenium
, чтобы получить текстовый узел, например, @Sunil Garg (//span[@class='zeiss-font-Md aletssubtitle']/text()
). Это синтаксически правильно XPath
выражение, но selenium
не поддерживает этот синтаксис:
selenium.common.exceptions.InvalidSelectorException: Сообщение: неверный селектор: Результат выражения XPath «// текст()» является: [ объект Текст]. Он должен быть элементом .
Это вы хотите получить полное или частичное текстовое содержимое определенного элемента, вы можете использовать что-то вроде
Python
span = driver.find_element_by_xpath("//span[@class='zeiss-font-Md aletssubtitle']")
span.text # returns 'Search Results : 1 Matching Results'
driver.execute_script('return arguments[0].childNodes[0].nodeValue.trim()', span) # returns 'Search Results :'
Java
WebDriverWait wait = new WebDriverWait(webDriver, 10);
WebElement span = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//span[@class='zeiss-font-Md aletssubtitle']")));
String text = span.getText();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("return arguments[0].childNodes[0].nodeValue.trim()", span);
Спасибо Сунил, его признавая текст в firepath. –
, если это помогло, вы можете принять/отменить ответ;) –
Спасибо Сунил, его распознающий текст в firepath. Но селен не распознает элемент. Я пытаюсь получить текст «Результаты поиска: –