你不能使用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);
感謝Sunil,它承認firepath中的文字。 –
如果這有幫助,你可以接受/ upvote答案;) –
謝謝蘇尼爾,它認識到firepath中的文字。但是硒不能識別元素。我試圖讓文本'搜索結果:' –