
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 选择器应该怎么写语句呢? 恳请指点,感谢! 1 OpenJerry Sep 28, 2017 driver.get(h) 这句话看不懂。driver.get() 这个方法传的参数不应该是一个 URL 吗? |
2 saximi OP @OpenJerry 是我搞错了,我的本意不是要测试某个网址,我只是希望对某一段 HTML 语法的解析进行分析,所以才用文档字符串来保存待分析的内容,我并不想传入整个 URL 作为参数,这样该怎么办呢 |
3 kqz901002 Sep 29, 2017 @saximi python -m SimpleHTTPServer ... driver.get("http://127.0.0.1/test.html") |
4 cszeus Sep 29, 2017 只想分析 html,用 beautifulsoup 吧 |
5 mlyy Sep 29, 2017 via iPhone lxml 好像也可以 |
6 justtery Sep 29, 2017 via Android pyquery 在呼唤你 |
7 Marsss Sep 29, 2017 把 target_url 写出来,正确答案马上就有了 |
11 yucongo Sep 30, 2017 pyquery +1 |