我有一个登录页面,它重定向到我需要使用selenium从元素中提取一些数据的页面。 我正在使用IE驱动程序从本地eclipse运行代码但面临一个问题,因为页面源是初始Web驱动程序页面的一段时间IE浏览器导航到页面有一些延迟,但页面源保持不变,得到一个例外,因为没有找到这样的元素。
尝试添加implicity等待,但没有奏效。 我可以在哪里解决延迟问题?
$result = array();
$text_array = explode(' ', 'andrew garfield invited as andrew@gomail.com');
for($i=0; $i<sizeof($text_array); $i++)
{
if(strpos($text_array[$i], '@'))
{
array_push($result, $text_array[$i]);
}
}
echo "<pre>";
print_r($result);
echo "</pre>";
答案 0 :(得分:0)
根据您的评论(对您的问题)&#34;它没有超出具有标题&#39; WebDriver&#39;&#34;的驱动程序的第一页,我认为您无法转到登录页面,输入凭据并单击将重定向到第2页的某个按钮。
在这种情况下,请告诉您使用的是适当版本的Internet Explorer驱动程序。我正在使用64位版本的Internet Explorer驱动程序,因为我在我的PC上使用64位版本的Internet Explorer浏览器和64位操作系统。如果您使用的是32位版本的Internet Explorer浏览器和32位操作系统,则需要使用32位版本的Internet Explorer驱动程序。如何查找我们正在使用的Internet Explorer浏览器的版本:通过检查它的可执行文件的路径,它是否在&#34; Program Files&#34;或者在&#34;程序文件(x86)&#34;夹。如何查看操作系统是32位还是64位:右键单击&#34;计算机&#34;并选择&#34;属性&#34;。
我认为以下代码可行:
@BeforeTest
public void setup() {
System.setProperty("webdriver.ie.driver", "C:/Dependancies/IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
@Test
public void test() throws InterruptedException {
driver.get("URL_of_login_page"); // Make sure the URL begins with 'http' or 'https'.
// Enter login credentials, click on 'Submit' button so that it will redirect to 2nd page.
Thread.sleep(15000); // Assuing 15 seconds is sufficient time for the 2nd page to load.
System.out.println("The 2nd page is loaded now.");
System.out.println(driver.getTitle()); // It should print page-title of 2nd page.
String source;
source = driver.getPageSource();
System.out.println(source);
}