from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement
h='''
<div class="page"><small>下一页</small></div>
'''
driver =webdriver.Chrome()
driver.get(h)
#操作 1:读取 h 中的 small 标签,并显示其文本内容,期望的输出是:'下一页'
s=driver.find_element_by_xpath("//div[@class='page']//small") #语句 1
print("s=",s.get_attribute('text'))
#操作 2:定位 h 中文本内容为'下一页'的元素,期望定位到的元素应当是 small 标签。然后显示其文本内容,期望的输出是:'下一页'
pg=driver.find_element_by_xpath("//div[@page]//small[contains(text(),'下一页')]") #语句 2
print("pg=",pg.get_attribute('text'))
上面的代码是用 selenium 来解析文本 h, 进行了两个操作,操作的目的如代码中的注释所示,但是两个操作都报错了,提示找不到元素。我的问题如下:
1、目前的代码是用 xpath 来解析,请问怎么写才是正确的?
2、我尝试不用 xpath,修改如下:
语句 1 修改为用 css 选择器 s=driver.find_element_by_css_selector('div.page>small')
语句 2 修改为 driver.find_element_by_link_text('下一页')
做了上述修改后还是一样找不到元素。恳请大家指点如果不用 xpath,例如用 css 选择器应该怎么写语句呢?
恳请指点,感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.