从PhantomJSWebDriver
切换到.Click
时遇到问题,我需要解决方法。
使用ChromeDriver我在可见元素上执行.Click
,旁边有另一个可见元素。 .Click
使网页在这些元素上放置一个“弹出窗口”。然后我在这个'弹出窗口'中的一个元素上执行.Click
然后它就消失了,我能够在第二个原始元素上执行PhantomJSDriver
并且一切正常。
然而,当我切换到使用.Click
时,它会抱怨在删除'popup'后第二个元素不可见,因此不会执行DriverWait
。
这是PhantomJS驱动程序的已知问题,还是有某种方法可以让它“重新评估”可见的内容?我已经尝试使用WebDriverWait waitforpopdown = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
waitforpopdown.Until(d => {
var elpd = driver.FindElement(By.ClassName(trid));
return elpd.Displayed;
});
查找元素并等待它“显示”但是不起作用
Option Explicit
Dim fso, folder, file, todaysDate, recentFile
Dim folderName, searchFileName, renameFileTo
folderName = "C:\Ticket\Test\"
todaysDate = Date()
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderName)
set recentFile = Nothing
For each file In folder.Files
If (recentFile is Nothing) Then
Set recentFile = file
ElseIf DateValue (file.DateLastModified) = todaysDate then
Set recentFile = file
Exit For
End IF
Next
recentFile.Name = Replace(recentFile.Name, "_", "A_")
我正在使用PhantomJS 2.1.1和Selenium 2.52.0.0并使用C#
答案 0 :(得分:0)
我和PhantomJSDriver有同样的问题。它与Chrome,FF和IE的javascript引擎不同。
我通过在docker上安装运行chrome的selenium服务器“修复”了我的问题。如果你有能力这样做,我建议你这样做。它是一个正在运行的实际Chrome浏览器,因此您在不同类型的chromes之间没有任何区别。
您可以在以下页面找到相关信息:https://github.com/peroumal1/docker-chrome-selenium
编辑:您必须像这样声明您的驱动程序(请注意它是java语法,但我相信您将能够找到C#语法):return new RemoteWebDriver(new URL("http://myurl.url:8888"), DesiredCapabilities.chrome());