我正在尝试使用selenium for python在浏览器中打开一个新选项卡或一个新窗口.如果打开新选项卡或新窗口,则重要的是打开浏览器的第二个实例非常重要.
我已经尝试了几种不同的方法,但都没有成功.
切换到一个不存在的窗口,希望在找不到所述窗口时打开一个新窗口:
driver.switch_to_window(None)
通过打开窗口迭代(虽然目前只有一个)
for handle in driver.window_handles:
driver.switch_to_window(handle)
Run Code Online (Sandbox Code Playgroud)试图模拟键盘按键
from selenium.webdriver.common.keys import Keys
driver.send_keys(Keys.CONTROL + 'T')
Run Code Online (Sandbox Code Playgroud)这一个特别的问题是,它似乎并不能直接发送键浏览器,只有这样的特定元素:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
Run Code Online (Sandbox Code Playgroud)
但是,当诸如此类的命令被发送到元素时,它似乎什么都不做.我试图在页面上找到最顶层的HTML元素并将密钥发送到该元素,但是再次遇到了失败:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
Run Code Online (Sandbox Code Playgroud)
我在网上找到的另一个版本,并且无法验证其有效性或缺乏有效性,因为我不确定需要导入的类/模块
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
Run Code Online (Sandbox Code Playgroud)
与不同语法非常相似的东西(我不确定这些中的一个或两个是否是正确的语法)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)
Run Code Online (Sandbox Code Playgroud) 我的布局有一个3列网格,每个网格的宽度都设置为Width="*".对于中间(第二)网格,我有另外3列网格,每个网格包含它自己的文本块,并且列网格宽度再次设置为Width="*".
调整窗口大小时,网格会按预期调整大小,但如果文本超出网格边界,则第3个文本块不会被修剪.我有文本框设置TextTrimming="WordEllipsis"和TextWrapping="Wrap",并且由于某种原因没有强制执行属性.
这是我的一些代码:
布局网格:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="150" MaxWidth="300" Width="1*" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition MinWidth="150" MaxWidth="500" Width="1*" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)
第二列代码:
<Grid Grid.Column="2" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="5" Width="Auto">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=FeedItems.Count}" Foreground="White" FontSize="18" Width="Auto" FontWeight="SemiBold" />
<TextBlock Text=" items from " Foreground="White" FontSize="18" Width="Auto" Grid.Column="1" />
<TextBlock Text="{Binding Path=Name}" Foreground="White" FontSize="18" Grid.Column="2" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" Width="Auto" TextWrapping="NoWrap" ClipToBounds="True" /> …Run Code Online (Sandbox Code Playgroud) 媒体存在于我想在我的演员接收器上播放的外部服务器上(Google 的 CastReferencePlayer的修改版本)。接收者与该服务器不断通信(通过长轮询),并在需要播放某个媒体文件时受到服务器的指示。
我遇到的问题是我需要接收器能够基本上“告诉自己”播放这个媒体。这违反了标准的发送方-接收方通信协议,但对于我的应用程序来说是必要的,我认为请求不会太古怪。
据我了解,MediaManager对象会自动接收来自演员表发送者的所有播放媒体请求。我正在寻找一种方法来连接到 MediaManager 并告诉它在没有收到发件人正式请求的情况下播放某些媒体。
尽管进行了大量搜索和阅读文档,但我找不到这样做的方法。有谁知道有什么方法可以做到这一点?
我在悬停时使用 CSS 旋转一个对象,并希望当您取消悬停它时它保持在新位置。我已经四处搜索,但我唯一能找到的是css :hover 旋转元素并保持新的位置,这似乎超出了范围。
这种效果可以纯粹用CSS实现吗?我希望当你停止悬停时图标保持在 180 度位置。
我使用了这段代码:
i.fa.fa-globe:hover {
color: #e9204f;
transition: 0.9s;
transform: rotatey(180deg);
}
Run Code Online (Sandbox Code Playgroud)
如果这有什么区别的话,它也是一个很棒的字体图标。
编辑 - 为其他需要它的人提供的简单 CSS 解决方案(摘自评论):
.lovernehovermarket i.fa.fa-rocket {
transform: rotate(0deg);
transition: transform 999s;
}
Run Code Online (Sandbox Code Playgroud) 我有一个对象的继承结构,有点像下面这样:
public class A { }
public class B : A { }
public class C : B { }
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望能够传递List的A,B或C以这样一个方法:
private void Method(List<A> foos) { /* Method Implementation */ }
B toBee = new B();
B notToBee = new B();
List<B> hive = new List<B> { toBee, notToBee };
// Call Method() with a inherited type. This throws a COMPILER ERROR
// because although B is an A, a List<B> is …Run Code Online (Sandbox Code Playgroud) 我找到了有关如何将字符串转换为打字稿枚举的绝佳答案。基于此,我编写了此功能
enum Color { Red='red', Green='green' }
function mapColorString(strColor: string): Color {
const colorKey = strColor as keyof typeof Color
return Color[colorKey]
}
Run Code Online (Sandbox Code Playgroud)
但是现在当我尝试使其通用时,
function getEnumFromString<T>(str: string): T {
const enumKey = str as keyof T
return T[enumKey]
}
Run Code Online (Sandbox Code Playgroud)
我在return语句中得到错误: 'T' only refers to a type, but is being used as a value here.
我想使它具有通用性,因为我需要根据它们的字符串值生成许多枚举,并且我不想为每个枚举使用单独的方法。
在下面的代码段中,我FILE_LOCATION从该类外部引用,并且在执行后流入此类以访问该常量,由于某种原因而不是继续返回到进行常量调用的位置,执行继续实例化单例.
我的问题是两部分; 为什么会发生这种情况,我该如何解决呢?我试图创建两个部分类,一个仅用于常量,另一个用于其他所有,但执行仍然继续到另一个部分类来实例化单例.
public sealed class Foo
{
public static readonly string FILE_LOCATION = @"path\to\file";
// (singleton code modeled after:
// http://csharpindepth.com/articles/general/singleton.aspx --fourth version)
private static readonly Foo foo = new Foo();
// Rest of class implementation...
}
Run Code Online (Sandbox Code Playgroud)
该属性是在按钮单击时从表单类的实例引用的:
public partial class MyForm : Form
{
public void button1_Click(object sender, EventArgs e)
{
string s = Foo.FILE_LOCATION;
// this location is only reached AFTER the singleton is instantiated.
}
}
Run Code Online (Sandbox Code Playgroud) c# ×2
chromecast ×1
constants ×1
css ×1
generics ×1
google-cast ×1
grid ×1
gridview ×1
partial ×1
polymorphism ×1
python ×1
sealed ×1
selenium ×1
singleton ×1
textblock ×1
texttrimming ×1
typescript ×1
window ×1
wpf ×1