用硒做几件事
本文关键字:几件 | 更新日期: 2023-09-27 18:33:58
我一直在做一些关于Selenium和 Fiverr.com 的工作,我遇到了一些问题,我希望得到一些帮助。我正在尝试创建一个新的演出,我已经设法做了所有事情,但有些事情仍然让我感到困惑。一件事是图片上传。
•您有一个按钮,单击文件输入类型((以显示Windows对话框,到目前为止,我的计划使用SendKeys.SendWait
已经奏效,除了您在Windows对话框上按"打开"以提交图片的部分。我尝试使用SendKeys.SendWait("{ENTER}"(单击它,但到目前为止对我不起作用,所以有什么想法吗?我想不出任何其他方法可以做到这一点,除非P/Invoke有一些东西来处理Windows对话框?
•我也在尝试在"描述"框中输入文本,但尚未能够做到这一点。我试图通过类名获取它,但它告诉我它无法访问该类,因为它是隐藏的,也尝试通过 Javascript ( IJavaScriptExecutor
( 来做到这一点,如下所示:
IWebElement detailFrame = firefoxDriver.FindElement(By.XPath("/html/body"));
var executor = firefoxDriver as IJavaScriptExecutor;
executor.ExecuteScript("arguments[0].innerHTML = 'hiiiiiiii'", detailFrame);
这很奇怪,因为他们在文本字段中使用 body,如下所示:
<body marginwidth="0" marginheight="0" spellcheck="true" class="wysihtml5-editor" contenteditable="true" style="color: rgb(119, 119, 119); cursor: auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; letter-spacing: normal; text-align: start; text-decoration: none; text-indent: 0px; text-rendering: auto; word-break: normal; word-wrap: break-word; word-spacing: 0px; overflow: auto; background-color: rgb(255, 255, 255);">TEXT HERE<span id="_wysihtml5-undo" class="_wysihtml5-temp"></span></body>
我认为他们使用了两个不同的"正文",但 XPath 只是显示它是/html/body。我将如何为这样的东西设置文本?
谢谢你们的帮助,过去两个小时一直在这里。
-
硒具有处理窗口的机制。您可以使用
driver.SwitchTo().Window("");
在新打开的窗口上设置焦点并对其执行其他操作。但是,请记住,要返回父窗口,您可能需要再次使用默认内容。有关其他窗口处理技术,请参阅此处。 -
首先,硒不识别隐藏元素。如果您确定该元素没有隐藏,那么我可能会说您使用的选择器可能不正确。如果我清楚地理解您提供的 html 并且该元素是可见的,那么我建议您对该元素使用 xpath。
//*[@id='_wysihtml5-undo']//..
可能对您有所帮助