gpt4 book ai didi

python - 在 Python 中将 CSS ":contains:"与 WebDriver 结合使用

转载 作者:行者123 更新时间:2023-11-28 08:53:44 26 4
gpt4 key购买 nike

我正在将一些 Selenium WebDriver 测试用例从 unittest 迁移到 py.test,当我尝试在 CSS 选择器上使用 *:contains() 命令时发现一个问题。这是一个失败行的示例:

    WebDriverWait(driver, 60).until(
expected_conditions.element_to_be_clickable((By.CSS_SELECTOR, "body.yui-skin-sam div[id=Navigation] ul[id=mainNav] li span:contains(Home)"))
)

每当我尝试使用不包含 *:contains() 的 CSS 选择器执行此命令时,它都能正常工作。否则,我会得到 TimeoutException 或 InvalidElementStateException。我也尝试使用以下方法:

expected_conditions.element_located_to_be_selected
" .element_to_be_clickable
" .element_to_be_selected
" .presence_of_element_located
" .text_to_be_present_in_element
" .visibility_of_element_located

我相当确定我的问题更多地与尝试使用 *:contains() 有关。尝试使用 By.NAME、By.XPATH 或任何其他对象名称,它工作正常。以下是我正在查看的与页面上的 HTML 源代码相关的内容:

</div>
<div id="HeaderBox">
<div id="Content">
<div id="Header">
<div id="Left">
<img src="/images/header_logo.png" />
</div>
<div id="Right">
<div id="Text">
<div id='active_conf'> running... </div><br>
Profile is unlocked. ( <a href="/Auth/Lock/">Lock</a>
| <a href="/Auth/Logout/">Logout</a> )<br>
</div>
</div>
</div>
<div id="Navigation">

<ul id="mainNav">
<li><a href="/"><span>Home</span></a></li>
<li><a href="/DataValues/"><span>DataValues</span></a></li>
<li><a href="/Devices/"><span>Devices</span></a></li>
</ul>

有谁知道我可以使用它的方法吗?提前致谢!

最佳答案

首先我会说我对 Selenium 的 Python 绑定(bind)不是很熟悉(我使用 Java)...但是,我前一段时间遇到了同样的问题。我能够通过将 Sizzle.js 注入(inject) DOM 来帮助元素定位来解决这个问题。 Sizzle 带来了 :contains() 伪类并支持其他 JQuery 选择器。

我找到了一些关于 Python 的信息 HERE ,但我确信那里有更详尽的信息。

关于python - 在 Python 中将 CSS ":contains:"与 WebDriver 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com