对应的元素名字是:
<input id="J_phone" type="text" name="_fm.ecard._0.m" value="" class="ipt tel-input" maxlength="11" autocomplete="off">
代码是这样的:
driver.find_element_by_id('J_phone').send_keys('手机号 xxx')
但是这个位置什么东西也没有写进去, 请问这个问题如何处理:
似乎没有找到那个元素: 然后出现问题。
J__LinkBuy 是购买的链接, 点击之后跳转到新的页面
这个是相对完整的代码:
element=WebDriverWait(driver,60).until(lambda driver :
driver.find_element_by_css_selector('#J_LinkBuy'))
element.click()
time.sleep(5)
driver.find_element_by_id('J_phone').send_keys(d['phone'])
1
laoyur 2017-10-01 12:29:08 +08:00
不要用 time.sleep(5),要等到那个元素 clickable 时再 send_keys
|
2
ljcarsenal 2017-10-01 12:31:25 +08:00
为啥要自动化操作
|
3
woshichuanqilz OP @laoyur 五秒已经够了, 足够加载出来了
代码改成这样会有这个问题: ``` element=WebDriverWait(driver,60).until(lambda driver : driver.find_element_by_css_selector('#J_LinkBuy')) ``` ![pic]( http://7xpvdr.com1.z0.glb.clouddn.com/1001123700.png ) |
4
woshichuanqilz OP @ljcarsenal 懒得点那么多按键。 ~~ 顺便学学 selenium
|
5
xsephiroth 2017-10-01 12:52:05 +08:00 via Android
应该不是同一个 frame, 你将 selenium 里那个源码打出来查一下, 另外 chrome 里调试 console 里选 top 层
|
6
woshichuanqilz OP @xsephiroth 您好您指的是那个源码? 能指导一下吗, 我可以付费的。
|
7
xsephiroth 2017-10-01 15:57:29 +08:00 via Android
@woshichuanqilz
Driver 里打出来应该和 chrome 里加载后的源码是一致的,你查一下 iframe 应该就能看到了 |
8
woshichuanqilz OP |
9
woshichuanqilz OP @xsephiroth 你好请问有没有好的解决办法~ 我可以付费解决
|
10
linw1995 2017-10-11 09:07:49 +08:00
@woshichuanqilz #9 https://stackoverflow.com/questions/37687149/how-to-switch-to-iframe-in-selenium
我来拿赏金,这里讲了如何切换到 iframe 的方法 |
11
sansansan333 2017-10-11 09:08:06 +08:00
没用过 selenium 不过看你这个描述,像是往里写的时候元素还没有加载出来吧。这里面能写判断和 console 吗。能的话先跑个定时器试试能不能出来这个元素不就解决了?
|
12
Shazoo 2017-10-11 09:41:48 +08:00
@woshichuanqilz
一般用了 selenium 都找不到的元素,就是页面在其他 iframe 里面。 你看看之前的一个旧帖,结合其他答案,就知道如何切换 iframe 了。 https://www.v2ex.com/t/358770#reply8 |
13
CosimoZi 2017-10-11 09:42:32 +08:00
估计是 iframe 问题
|
14
capo 2017-10-11 10:18:20 +08:00
甩个网页链接呗
|
15
linhua 2017-10-11 11:03:44 +08:00
|
16
blueorange 2017-10-11 11:17:23 +08:00
selenium 是可以打印截图的 打印截图之后 你看看有没有那个输入框。
|
17
linhua 2017-10-11 15:26:07 +08:00
|
18
woshichuanqilz OP @Shazoo 尝试过切换 iframe 是无效的
|
19
woshichuanqilz OP @linw1995 应该不是 iframe 的问题因为整个页面的内容都没有
|