【发布时间】:2020-09-23 00:16:29
【问题描述】:
我目前正面临 selenium 在 javascript 按钮上获取确切 xpath 的问题,如果有人能启发我或指导我,我将不胜感激。
从图片中可以看出,突出显示的是 javascript 按钮。我打算做的是使用 selenium 找到显示“账单”的按钮并单击它以清除状态。
我当前的代码是
while True:
try:
driver.find_element_by_xpath("//*[@id='main']/div/div/div[2]/div/div[2]/table/tbody/tr[1]/td[12]/a[1]")
except NoSuchElementException:
driver.refresh()
time.sleep(5)
else:
time.sleep(3)
driver.find_element_by_xpath("//*[@id='main']/div/div/div[2]/div/div[2]/table/tbody/tr[1]/td[12]/a[1]").click()
我想要它做的是搜索“账单”按钮,如果没有找到,请继续刷新页面直到出现“账单”按钮,然后单击它会将其带到另一个页面。请注意,它可能会出现超过 1 个“账单”按钮(仍然没有弄清楚如何为该部分编码,但我希望它点击出现“账单”按钮的行,时间较早首先将带到另一个页面,在清除该页面后将转发回该页面并继续执行第二个“账单”按钮等)
我的代码现在发生的事情是 xpath 元素仅位于“bill”按钮的第一行,它也可以是“check”按钮位于同一位置的第一行。就像我之前提到的那样,可能会出现多个“账单”按钮,所以我不知道如何解决这个问题。
这是我从 chrome 浏览器中检查“账单”按钮时得到的 html。
<a href="javascript:;" onclick="showContent('billing','/info/bill/12');" class="btn btn-danger btn-sm">
<span class="glyphicon glyphicon-card">
</span>
bill
</a>
如果有人能帮助我解决这个问题,我真的很感激。谢谢
【问题讨论】:
标签: javascript python selenium