【发布时间】:2019-02-10 05:04:03
【问题描述】:
我正在尝试自动化 gmail 页面(用于某种电子邮件验证),在输入用户名和密码后,我想等待页面完全加载,然后再继续我的下一个操作。
这是我尝试过的:
Selenium2Library.Input Text //input[contains(@id, "identifierId")] ${local_email_username}
Selenium2Library.Click Element //span[text()="Berikutnya"]
Sleep 2s
Selenium2Library.Wait Until Element Is Visible //input[contains(@name, "password")] timeout=30s
Selenium2Library.Input Password //input[contains(@name, "password")] ${local_email_password}
Selenium2Library.Click Element //span[text()="Berikutnya"]
Sleep 2s
Selenium2Library.Wait Until Element Is Visible //input[contains(@aria-label, "Search")] timeout=30s
### should be logged in to gmail
Log >>> logged in to gmail. sleeping..
Sleep 5s
### make sure the email page fully loaded
Log >>> making sure the email page fully loaded.. waiting new conversation button appeared
Comment Wait Until Keyword Succeeds 10x 2s Selenium2Library.Page Should Contain ${email_name}
Wait Until Keyword Succeeds 20x 3s Selenium2Library.Page Should Contain Element //button[contains(@title, 'New conversation')]
Log >>> email page fully loaded. start searching activation email...
我想要实现的是等待新的对话按钮,这表明页面已完全加载(//button[contains(@title, 'New conversation')])
问题是脚本永远找不到按钮。我试图检查并搜索该 xpath,并找到了该元素。
有什么解决办法吗?
更新:
我尝试像这样使用 Select Frame .. 就像@Gaurav 说的那样.. 这是代码:|
Selenium2Library.Select Frame ${iframe_locator}
Wait Until Keyword Succeeds 20x 3s Selenium2Library.Page Should Contain Element //button[contains(@title, 'New conversation')]
Selenium2Library.Unselect Frame
其中 ${iframe_locator} 是 //body/div[7]/div[3]/div[1]/div[2]/div[1]/div[1]/div[3]/div[1]/div[1]/div[2]/div[1]/iframe[2]
但仍然没有运气
【问题讨论】:
标签: selenium automation automated-tests robotframework selenium2library