有一段时间我一直在寻找如何检查GdkWindowState
类型的Gtk常量是否包含标志。
我目前正在这样做:
state=self.window_root.get_window().get_state()
if 'GDK_WINDOW_STATE_FULLSCREEN' in str(state):
...
self.window_root
是Gtk.Window
这是一个软黑客,但我想通过使用Gdk.WindowState.FULLSCREEN
我尝试了一些类似的事情:if Gdk.WindowState.FULLSCREEN in state:
但常量不可迭代。我想指出,只使用if Gdk.WindowState.FULLSCREEN == state:
不起作用,因为窗口也是重点。
当我打印state
时,我得到:
<flags GDK_WINDOW_STATE_FULLSCREEN | GDK_WINDOW_STATE_FOCUSED of type
GdkWindowState>
所以我实际上看到有一个|
运算符,我认为应该可以用它做一些事情。像state.get_flags()
答案 0 :(得分:1)
根据PyGtk documentation,GdkWindowState是一组位标志。尝试将其转换为整数值并使用二进制AND:
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.yahoo.com");
driver.manage().window().maximize();
driver.findElement(By.xpath("//*[text()='Sign In']"))
.click();
driver.findElement(By.cssSelector("#login-username"))
.sendKeys("tester@yahoo.com");
driver.findElement(By.cssSelector("#login-passwd")).sendKeys("tester1234");
driver.findElement(By.cssSelector("#login-signin")).click();
}
实际上,GdkWindowState类很可能直接支持此操作,或者有一些标准方法可以转换为整数。
您可以使用if Gdk.WindowState.FULLSCREEN & int(state):
# ...
查看可用的字段和方法,并从那里进行调查。