在this page上,我想输入“已查找”或“消失”,单击“将单词放大空间”按钮,然后在结果页面上找到“分析结果”。我有执行所有操作的代码,但无法隔离结果。
Original Text Analysis Result
------------- ---------------
looked look
gone go
这是“ looked”的HTML结果:
<div class="span5 offset1">
<h4>Original Text</h4>
<p>
looked
</p>
</div>
<div class="span5">
<h4>Analysis Result</h4>
<p>
look
</p>
</div>
这是我的代码
array = []
myText = ["looked", "gone"] # I post this array to website.
for a in range(0, len(myText)):
x = driver.find_element_by_class_name("span5")
array.append(x.text)
print b -> [u'Original Text\nlooked', u'Original Text\ngone']
我如何只获得结果,“看”或“去”?
答案 0 :(得分:1)
答案是: 找到所有包含特定类和子p标签的元素
element = driver.find_element_by_xpath('//div[contains(@class, 'span5')]/p')
text = element.text
答案 1 :(得分:1)
您还可以为此使用以下CSS选择器:
...
text = driver.find_element_by_css_selector(".span5>p").text
...
您可以优化代码:
array = []
elements = driver.find_elements_by_css_selector(".span5>p")
for element in elements:
array.append(element.text)
或更多Pythonic:
array = [element.text for element in elements]
希望对您有帮助!
答案 2 :(得分:0)
将以下数组发布到网站时:
myText = ["looked", "gone"]
根据结果HTML DOM提取文本,例如外观,继续等,您可以使用以下解决方案:
my_elements = driver.find_elements_by_css_selector("div.span5:not(.offset1) p")
my_array = [my_element.text for my_element in my_elements]
print(my_array)
答案 3 :(得分:-1)
我假设div元素是另一个实体的子元素,这是在Java中,也许您知道如何在Python中创建它。我创建了一个基于className和tagName的WebElement列表-在您的情况下为p标签,此后我将打印结果。
List<WebElement> listofWords= driver.findElement(By.className("other_entity_ClassName_or_something_else")).findElements(By.tagName("p"));
for (int i = 0; i < listofWords.size(); i++) {
System.out.println(listofWords.get(i).getText());
}
谢谢