Skilteee 发表于 2020-10-29 10:59:55

求大佬帮忙看看为啥会找不到元素

import selenium.webdriver
import time
driver=selenium.webdriver.Chrome()
url="https://login.tmall.com/"
driver.get(url)
time.sleep(5)


driver.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys("15116239028")

<input name="fm-login-id" type="text" class="fm-text" id="fm-login-id" tabindex="1" aria-label="会员名/邮箱/手机号" placeholder="会员名/邮箱/手机号" autocapitalize="off">    这个是对应元素的网页代码
麻烦大佬们了!!!



kogawananari 发表于 2020-10-29 14:53:00

在F12的Console里面执行JavaScript
document.querySelector('#fm-login-id')
看是不是null
然后切换JavaScript context(f12里面是个下拉选择框 我试了以下 是login.jhtml这个玩意)再执行上面的js 直到不为null
基本可以确定是在这个里面 确定这个就好说了 你再用 driver.switch_to_frame 这个方法去切换想办法进入login.jhtml

kogawananari 发表于 2020-10-29 14:54:16

说白了就是 这个网页是iframe标签套娃了多个document 你只看到了第一层 其实它在第三层

kogawananari 发表于 2020-10-29 14:56:05

然后就是 css选择器比xpath好用多了 JavaScript的document.querySelector方法可以去用css选择器直接定位而xpath需要浏览器插件吧

Skilteee 发表于 2020-10-29 17:10:10

kogawananari 发表于 2020-10-29 14:56
然后就是 css选择器比xpath好用多了 JavaScript的document.querySelector方法可以去用css选择器直接定位   ...

请问这个东西能用python的方法定位嘛,小白还没学java的相关内容{:10_266:}

kogawananari 发表于 2020-10-29 20:59:21

Skilteee 发表于 2020-10-29 17:10
请问这个东西能用python的方法定位嘛,小白还没学java的相关内容

{:10_292:}寻找iframe标签进入也可以还有 前面那个是JavaScript和java不是一个东西
页: [1]
查看完整版本: 求大佬帮忙看看为啥会找不到元素