正确按钮:选择碎片

2024-05-15 02:18:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试自动登录到一个网站,这样我就可以从我的气象站检索信息。登录页面位于http://www.lacrossealertsmobile.com/v1.2/#userLogin

当我查看源代码时,我看到几行

<button type="submit" class="btn btn-default">Submit</button>

我想选择当我访问上面的页面时显示的登录页面的按钮。登录的代码部分是

^{pr2}$

碎片文件说

Finding methods are chainable, so you can find the descendants of a previously found element.

所以我试着用以下方法:

login = browser.find_by_id('userLogin')
login.first.find_by_text('Submit')

我尝试这样做是为了在登录部分中找到“提交”,然后我期望我可以修改代码为

login.first.find_by_text('Submit')[0].click()

这没用。我最终发现这是因为上面的元素[0]不可见。经过反复试验,我发现我想要的可见按钮是元素[5]。事实上,我的连锁搜索并没有像我想象的那样。下面的两个搜索为找到的对象返回不同的地址,但是在任何一种情况下,都是元素[5]映射到所显示表单上的Submit按钮

>>> login.first.find_by_text('Submit')
[<splinter.driver.webdriver.WebDriverElement object at 0x03320FF0>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD170>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD1B0>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD210>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD250>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD290>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD2D0>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD310>]
>>> browser.find_by_text('Submit')
[<splinter.driver.webdriver.WebDriverElement object at 0x0326CEB0>, <splinter.driver.webdriver.WebDriverElement object at 0x0326C590>, <splinter.driver.webdriver.WebDriverElement object at 0x033200F0>, <splinter.driver.webdriver.WebDriverElement object at 0x033209B0>, <splinter.driver.webdriver.WebDriverElement object at 0x033201B0>, <splinter.driver.webdriver.WebDriverElement object at 0x03320190>, <splinter.driver.webdriver.WebDriverElement object at 0x033207D0>, <splinter.driver.webdriver.WebDriverElement object at 0x033AD350>]

所以我的问题是为什么链式搜索没有返回“userLogin”的后代,这是我想要的提交按钮?在


Tags: textbyobjectdriverlogin页面find按钮
1条回答
网友
1楼 · 发布于 2024-05-15 02:18:14

原因很可能是因为它不是使用该ID找到的对象的直接后代

或者,您可以使用绝对Xpath通过Xpath进行定位,或者尝试在DOM中使用其正上方的对象。在

相关问题 更多 >

    热门问题