gpt4 book ai didi

python - 使用 Splinter 运行测试时 XPath 未解析为链接

转载 作者:行者123 更新时间:2023-12-01 05:39:49 25 4
gpt4 key购买 nike

这是使用 Splinter 0.5.4 和 Python 2.7.5。Firefox 22.0,在运行 Mountain Lion 的 MacBook Air 上。

这就是我正在尝试做的 -

1.登录 Gmail。

2.单击“垃圾箱”链接。

3.单击“垃圾箱”页面中的立即清空垃圾箱链接。

4.在确认对话框中单击“确定”。

使用 Firebug/FirePath - 此 XPath - `//div/div[3]/div[3]/div/span` 或 `//div/div[3]/div[3]/div/span[@id]`突出显示立即清空垃圾箱链接。

但是当我使用 Splinter 运行时,XPath 无法解析到该链接(因此我在调用链接上的 click() 方法时收到 AttributeError)。

知道为什么 Splinter 无法解析链接吗?根据我的检查,XPath 似乎没问题。

非常感谢任何帮助。

def emptyTrash():
browser.click_link_by_href("https://mail.google.com/mail/u/0/?shva=1#trash")
print browser.is_element_present_by_xpath("//div/div[3]/div[3]/div/span", wait_time=5)
deleteLink = browser.find_by_xpath("//div/div[3]/div[3]/div/span[@id]")
print deleteLink #prints an empty list, since the above xpath is not finding the link
deleteLink.click() #AttributeError
trashokButton = browser.find_by_name("ok")
trashokButton.click()

最佳答案

我认为你的 xpath 不太正确。以下是对我有用的方法:

from splinter import Browser
import time

URL = 'https://mail.google.com/mail/u/0/?shva=1#trash'

with Browser() as browser:
browser.visit(URL)

username = browser.find_by_id('Email')
username.fill(...)

password = browser.find_by_id('Passwd')
password.fill(...)

button = browser.find_by_id('signIn')
button.click()

time.sleep(5)

browser.visit(URL)

empty_button = browser.find_by_xpath("//div[5]/div[2]/div/div[2]/div[1]/div[2]/div/div/div/div[2]/div[1]/div[1]/div/div[2]/div[3]/div/span")
empty_button.click()

尽管如此,您应该考虑简化 xpath 表达式,但具有绝对路径的 xpath 太脆弱了。

希望有帮助。

关于python - 使用 Splinter 运行测试时 XPath 未解析为链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com