用硒做几件事

本文关键字:几件 | 更新日期: 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。我将如何为这样的东西设置文本?

谢谢你们的帮助,过去两个小时一直在这里。

用硒做几件事

  1. 硒具有处理窗口的机制。您可以使用driver.SwitchTo().Window("");在新打开的窗口上设置焦点并对其执行其他操作。但是,请记住,要返回父窗口,您可能需要再次使用默认内容。有关其他窗口处理技术,请参阅此处。

  2. 首先,硒不识别隐藏元素。如果您确定该元素没有隐藏,那么我可能会说您使用的选择器可能不正确。如果我清楚地理解您提供的 html 并且该元素是可见的,那么我建议您对该元素使用 xpath。 //*[@id='_wysihtml5-undo']//..可能对您有所帮助