webdriverwait 相关问题

WebDriverWait:扩展FluentWait的WebDriverWait <WebDriver>是使用WebDriver实例的Class FluentWait <T>的特化。

使用WebDriverWait仅检查直到超时,无异常

我正在尝试使用 WebDriverWait 使条件成立。如果超时后不成立,则继续 - 而不是超时异常。 新的 WebDriverWait(驱动程序, 10) .pollingEvery(持续时间.ofSecond...

回答 1 投票 0

使用WebDriverWait仅检查直到超时,无异常

我正在尝试使用 WebDriverWait 使条件成立。如果超时后不成立,则继续 - 而不是超时异常。 新的 WebDriverWait(驱动程序, 10) .pollingEvery(持续时间.ofSecond...

回答 1 投票 0

如何为涉及::before标签的元素编写xpath

我正在尝试单击后面跟着 ::before 标记的选择元素。任何人都可以帮我为下面的 HTML 编写 XPath 或 CSSselector 路径吗 下面是我写的 XPath...

回答 1 投票 0

如何克服Selenium中失败测试用例长时间等待才抛出异常的问题?

在 Java Selenium 中运行我的测试用例时经过长时间等待后抛出异常,其中代码中没有给出等待条件 我使用 TestNG 在 Java selenium 中设计了一个测试用例

回答 1 投票 0

Python Selenium WebDriverWait() 与 element_to_be_clickable() 不起作用

这是我的代码: 第 1 部分:初始化驱动程序 从硒导入网络驱动程序 从 selenium.webdriver 导入 Chrome 从 selenium.webdriver.chrome.service 导入服务 来自 webdriver_manager.chrome

回答 1 投票 0

如何绕过cloudflare挑战上传redbubble概念

我需要在上传图像时绕过cloudflare 挑战,但我无法绕过它。我已经尝试了很多概念,但仍然无法解决问题。 当

回答 2 投票 0

如何在Python中使用Selenium点击Linkedin中的下一个按钮?

我在网页中找到元素“Next Button”并使用 Python 中的 Selenium 单击该元素时遇到问题 代码试验: 尝试: driver.find_element(By.CSS_SELECTOR, ".artdeco-

回答 1 投票 0

Selenium - 无法单击导航栏下拉菜单

我正在尝试运行一个自动执行特定任务的脚本。这是: Chrome 搜索网站 登录网站(填写详细信息) 导航到选项卡(称为“职位列表 V2”) 输入产品条形码...

回答 1 投票 0

如何使用 Selenium 点击 cloudflare 的“验证你是人类”复选框挑战

我需要使用 Python 自动下载此网页中的 .csv 文件: https://pace.coe.int/en/aplist/committees/9/commission-des-questions-politiques-et-de-la-democratie 现在,我有

回答 3 投票 0

如何通过Selenium切换到新窗口

我有 1 个第三方集成作为 Paypal。当我单击“下订单”按钮时,它会将我从“下订单”页面导航到 paypal 页面。 您能告诉我它将如何运作吗?我有...

回答 2 投票 0

我无法使用 Selenium send_keys 在占位符中输入文本

我无法在重量、长度、宽度和高度的占位符中输入任何文本。 它不适用于 .send_keys()。它保留在占位符中并且不执行任何操作。 有人可以帮我解决吗? 来自 sel...

回答 1 投票 0

如何使用Xpath定位Google主页上的搜索框

我已经从开发者工具 xpath 输入了正确的内容,但它仍然不是 macthing 元素。如何找到 google 搜索框的 xpath 或其他定位器。 HTML: 我已经从开发者工具 xpath 输入了正确的内容,但它仍然不是 macthing 元素。如何找到 google 搜索框的 xpath 或其他定位器。 HTML: <input id="input" type="search" autocomplete="off" spellcheck="false" role="combobox" ariacontrols="matches" placeholder="Search Google or type a URL" aria-expanded="false" aria-live="polite"> 相对 Xpath: /html/body/ntp-app/div/div[2]/ntp-realbox/div/input 绝对Xpath: //*[@id="input"] 快照A: 快照B: 鉴于快照: 您正在尝试找到手动打开的默认 Chrome 浏览器页面的搜索框,该搜索框在 Selenium 驱动 ChromeDriver 启动 google-chrome 浏览上下文 中不可用 理想情况下,您应该访问一个网址。如果您访问网址https://www.google.com/,您可以使用以下定位器策略来定位搜索框: 代码块: driver.get("https://www.google.com/") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "q"))).send_keys("BRAJESH KUMAR") 浏览器快照: 我相信您可以简单地查找 textarea 标签,如下面的 Xpath 所示。 //textarea[@type="search"]

回答 2 投票 0

使用 Xpath 使用 Selenium 进行网页抓取

我正在 https://tnnslive.com/ 上寻找一些号码 我在 tnnslive.com 上寻找的号码: 如果我在 Chrome 中复制 xpath,我会得到: //*[@id="root"]/div/div/div/div/div/div/div/div[2...

回答 1 投票 0

如何使用 Selenium 定位嵌套 div 中的输入元素

我无法找到元素 ,并且想将文本“hello”放入文本框中。 尝试找到输入 class='search-text' 我的网络驱动程序代码...

回答 1 投票 0

如何使用 Python 机器人单击按钮元素

我想点击下面代码中的发送电子邮件按钮,但我无法访问任何字段,例如选择器、xpath...并点击该按钮。当你运行代码时,你会看到它已经打开了......

回答 2 投票 0

使用 PhantomJS 和 Python 解析动态 HTML 页面

我想抓取一个 HTML 页面,其中内容不是静态的,而是用 JavaScript 加载的。 我将 Selenium 降级到 3.3.0 版本,以便能够支持 PhantomJS(v4.9.x 不支持

回答 2 投票 0

使用Python和Selenium按文本单击按钮

是否可以使用Selenium单击具有相同文本的乘法按钮?

回答 5 投票 0

Selenium 忽略 WebDriverWait 并执行操作

测试有多次点击,这些点击会重定向到其他页面,因此我在那里添加了一些显式等待,但是当执行测试时,Selenium 会忽略两个等待之一并执行点击。然后才显式等待

回答 1 投票 0

html 中的 Selenium 和 iframe

无法在 iframe 内的元素上使用 send_keys()。我如何选择这个 iframe,以及里面的哪个元素应该用于 send_keys()? 这是 iframe 的 html 代码: <question vote="30"> <p>无法在 iframe 内的元素上使用 <pre><code>send_keys()</code></pre>。我怎样才能选择这个iframe,里面的哪个元素应该用于<pre><code>send_keys()</code></pre>?</p> <p><img src="https://cdn.imgupio.com/i/AWkuc3RhY2suaW1ndXIuY29tL1h6SjJFLnBuZw==" alt="page image"/></p> <p>这是 iframe 的 html 代码:</p> <pre><code>&lt;iframe class=&#34;textarea&#34; src=&#34;/framework/html/blank.html&#34; style=&#34;width: 99%; border-width: 1px; height: 332px;&#34;&gt; #document &lt;html webdriver=&#34;true&#34;&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; … &lt;/body&gt; &lt;/html&gt; &lt;/iframe&gt; </code></pre> <p><strong>如何向描述区域发送文字?</strong></p> <p>如果在浏览器中使用“查看页面源”时没有出现iframe的页面源,如何查看?</p> </question> <answer tick="true" vote="70"> <p><pre><code>driver.switch_to.frame(driver.find_element_by_tag_name(&#34;iframe&#34;))</code></pre> 假设该驱动程序是一个健康的 webdriver 实例。要继续使用默认内容,请执行 <pre><code>driver.switch_to.default_content()</code></pre></p> <p><strong>编辑</strong>:当您切换到所需的框架时,像往常一样找到您的网络元素。我猜(但不确定)在你的情况下这将是一个 html/body,所以</p> <p><pre><code>el = driver.find_element_by_xpath(&#39;html/body&#39;)</code></pre></p> <p>应该没问题。并执行</p> <p><pre><code>el.send_keys(&#39;keys_to_send&#39;)</code></pre></p> <p><strong>EDIT2</strong>:在发送密钥之前,您可能必须关注该元素(单击应该执行该操作,应该出现一个子元素)。或者您可以通过 JS 放置所需的文本。</p> <p><pre><code>driver.execute_script(&#39;document.body.innerHTML = &#34;%s&#34;&#39; % text_var)</code></pre></p> </answer> <answer tick="false" vote="3"> <p>接受的答案对于给定的问题非常有效。然而,我有两个理由再添加一个答案,并希望这个答案可以帮助有人用不同的问题解决这个问题。</p> <p><strong>原因一:</strong></p> <p>接受的答案有一种处理网页内 iframe 的方法。然而,有不同的方法来处理 iframe。</p> <ul> <li>通过使用框架的索引位置</li> <li>通过使用框架的名称</li> <li>通过使用框架的id</li> </ul> <p><strong>原因2:</strong></p> <p>它使用 <strong>driver.find_element_by_tag_name("iframe")</strong> 语句来查找 iframe 元素,当同一页面中有多个 iframe 元素时,该元素可能不起作用或返回预期的 iframe Web 元素。</p> <p>有很多文章详细解释了如何处理 iframe。</p> <ol> <li><a href="http://allselenium.info/handling-iframes-using-selenium-webdriver/" rel="nofollow noreferrer">http://allselenium.info/handling-iframes-using-selenium-webdriver/</a></li> </ol> </answer> <answer tick="false" vote="1"> <p>您可以根据 <a href="https://stackoverflow.com/questions/53203417/ways-to-deal-with-document-under-iframe/53276478#53276478">HTML DOM</a> 的普遍情况使用多种方法切换到 <a href="https://www.w3schools.com/js/js_htmldom.asp" rel="nofollow noreferrer">iframe</a>。</p> <ul> <li><p>如果 <pre><code>&lt;iframe&gt;</code></pre> 是 <em>DOM Tree</em> 中唯一的 <a href="https://javascript.info/dom-nodes" rel="nofollow noreferrer">iframe</a>,您可以使用以下代码行:</p> <ul> <li><p>使用<em>TAG_NAME</em>:</p> <pre><code>driver.switch_to.frame(driver.find_element(By.TAG_NAME, &#34;iframe&#34;)) </code></pre> </li> </ul> </li> <li><p>使用独特的<pre>定位器策略</pre>定位<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890"><code>&lt;iframe&gt;</code></a>元素:</p> <ul> <li><p>使用<em>css_selector</em>:</p> <pre><code>driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, &#34;iframe.textarea[src=&#39;/framework/html/blank.html&#39;]&#34;)) </code></pre> </li> <li><p>使用<em>xpath</em>:</p> <pre><code>driver.switch_to.frame(driver.find_element(By.XPATH, &#34;//iframe[@class=&#39;textarea&#39; and @src=&#39;/framework/html/blank.html&#39;]&#34;)) </code></pre> </li> </ul> </li> </ul> <hr/> <p>理想情况下要切换到<pre><code>&lt;iframe&gt;</code></pre>,所以你必须:</p> <ul> <li><p>诱导 <a href="https://stackoverflow.com/questions/59130200/selenium-wait-until-element-is-present-visible-and-interactable/59130336#59130336">WebDriverWait</a> 使所需的 <em>框架可用并切换到它</em>。</p> </li> <li><p>诱导 <a href="https://stackoverflow.com/questions/52603847/how-to-sleep-webdriver-in-python-for-milliseconds/52607451#52607451">WebDriverWait</a> 使所需的<em>元素可点击</em>。</p> </li> <li><p>您可以使用以下任一<a href="https://stackoverflow.com/questions/48369043/official-locator-strategies-for-the-webdriver/48376890#48376890">定位器策略</a>:</p> <ul> <li><p>使用<em>TAG_NAME</em>(仅存在 iframe):</p> <pre><code>WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.TAG_NAME, &#34;iframe&#34;))).click() </code></pre> </li> <li><p>使用<em>CSS_SELECTOR</em>:</p> <pre><code>WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,&#34;iframe.textarea[src=&#39;/framework/html/blank.html&#39;]&#34;))) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, &#34;element_css_selecor&#34;))).send_keys(&#34;character_sequence&#34;) </code></pre> </li> <li><p>使用<em>XPATH</em>:</p> <pre><code>WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,&#34;//iframe[@class=&#39;textarea&#39; and @src=&#39;/framework/html/blank.html&#39;]&#34;))) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, &#34;//a[@class=&#39;TlogBtn&#39;]/span[@class=&#39;mailicn&#39;]/img&#34;))).send_keys(&#34;character_sequence&#34;) </code></pre> </li> </ul> </li> <li><p><strong>注意</strong>:您必须添加以下导入:</p> <pre><code>from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC </code></pre> </li> </ul> <hr/> <h2>参考</h2> <p>您可以在以下位置找到一些相关讨论:</p> <ul> <li><a href="https://stackoverflow.com/questions/44834358/switch-to-an-iframe-through-selenium-and-python/44847390#44847390">通过Selenium和python切换到iframe</a></li> <li><a href="https://stackoverflow.com/questions/50315587/selenium-common-exceptions-nosuchelementexception-message-no-such-element-una/50315715#50315715">selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试使用selenium单击“下一步”按钮时无法找到元素</a></li> python 中的<li><a href="https://stackoverflow.com/questions/53441658/selenium-in-python-nosuchelementexception-message-no-such-element-unable-to/53442511#53442511">selenium:NoSuchElementException:消息:没有这样的元素:无法找到元素</a></li> </ul> </answer> <answer tick="false" vote="0"> <p>为了处理网页上的 iframe,您需要首先使用以下命令切换到页面上存在的 iframe: driver.switch_to.frame(frame_id)</p> <p>本教程有一个<a href="https://www.youtube.com/watch?v=sfdWF4vBZ2o" rel="nofollow noreferrer">使用 selenium 和 python 处理 iframe 的工作示例</a>,这将使您能够解决这个问题。</p> </answer> </body></html>

回答 0 投票 0

在 Selenium/Python 中从亚马逊产品页面的图像中提取所有 src 属性

我正在使用 Selenium 从亚马逊产品页面中抓取详细信息([示例][1])。我已经成功抓取了产品标题,但我还想获取所有产品图片的 URL。这是我...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.