鹿小诞 发表于 2017-4-24 16:33:12

【求助】底下这段代码这个 news_link 怎么老是定位不到。

fromseleniumimport webdriver
importtime

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.maximize_window()
#driver.set_window_size(480,800) 设置浏览器大小

search_element = driver.find_element_by_id('kw')
search_element.send_keys('selenium')

search_button = driver.find_element_by_id('su')
search_button.click()


time.sleep(5)
main_link = driver.find_element_by_link_text('百度首页')
main_link.click()
time.sleep(10)
news_link = driver.find_element_by_xpath("//div[@id='u1']/a")   #就是这个了~ 我怎么老是定位不到。感觉好像写的也没错。我换成绝对路径貌似也不行
news_link = driver.find_element_by_xpath("/html/body/div/div/div/div/a")   #换成这个我也是定位不到。
news_link.click()

请问是什么原因呢?

梦想家 发表于 2017-4-24 16:46:26

定位的是什么把 页面元素图贴出来

鹿小诞 发表于 2017-4-24 16:50:16

梦想家 发表于 2017-4-24 16:46
定位的是什么把 页面元素图贴出来

cq520131517 发表于 2017-4-24 17:10:35

新闻,定位不是有很多种方法吗,我的是谷歌浏览器,这种可以driver.find_element_by_xpath("//div[@id='u1']/a") .click()

Real_小T 发表于 2017-4-24 17:12:07

用link_text

鹿小诞 发表于 2017-4-24 17:16:15

Real_小T 发表于 2017-4-24 17:12
用link_text

我知道link_text 可以,但是我就是想要试一下xpath这个

cq520131517 发表于 2017-4-24 17:18:10

driver.find_element_by_link_text('新闻').click()这个也可以

cq520131517 发表于 2017-4-24 17:20:24

driver.find_element_by_partial_link_text("闻").click()

cq520131517 发表于 2017-4-24 17:21:24

你的语句写的有问题,你自己检查一下

cq520131517 发表于 2017-4-24 17:21:57

driver.find_element_by_xpath('//*[@id="u1"]/a').click()

cq520131517 发表于 2017-4-24 17:22:09

你多了一个div

cq520131517 发表于 2017-4-24 17:26:35

driver.find_element_by_xpath('html/body/div/div/div/div/a').click(),这个是根据你第二句的xpath定位,可以运行

cq520131517 发表于 2017-4-24 17:30:57

div的数量要根据它实际数量来计算的,有几个算几个,同层

鹿小诞 发表于 2017-4-24 17:37:26

cq520131517 发表于 2017-4-24 17:22
你多了一个div

谢谢啦。明白了

jingzizx 发表于 2017-4-25 08:22:36

:lol

鹿小诞 发表于 2017-4-25 09:24:09

cq520131517 发表于 2017-4-24 17:30
div的数量要根据它实际数量来计算的,有几个算几个,同层

不对啊。大神,为什么我用firfox里面的firebug去看他的xpath 复制出来和我一样呢?
而且我昨天看了下书,这个div 中括号里面的应该是指他是第几个div吧?

梦想家 发表于 2017-5-9 10:21:34

好多种定位方式呢 这个不可以就换一个呗
页: [1]
查看完整版本: 【求助】底下这段代码这个 news_link 怎么老是定位不到。