【发布时间】:2021-04-12 12:34:13
【问题描述】:
我正在使用 Safari 网络驱动程序打开我网站的登录页面。我能够访问元素并成功登录。一旦登录页面,主页就会加载。但是,我无法找到或单击页面上的任何元素。 我已经通过 id、tag、class 和 xpath 尝试过。都无法返回任何元素。 调用失败并出现没有消息的 WebDriverException。 我已经使用 //* 获得了页面上的所有元素。当我打印类名时,这给了我一个元素列表,我可以看到它仍然包含登录页面中的元素。 看起来 DOM 没有刷新。我尝试使用 driver.refresh 自己刷新它并发送 command+r 键,但没有任何效果。 任何帮助都非常感谢 页面对象函数
def get_study_cards(self) -> list[WebElement]:
self.selenium_puppeteer.wait_for_element(By.CLASS_NAME, "study-card", 20)
self.selenium_puppeteer.take_screenshot("{} {}".format(self._get_name(), "get study card"))
study_list = self.selenium_puppeteer.driver.find_element_by_class_name("study-card")
return study_list
登录测试功能:
def test_login(self):
self._set_up_test_reporter(
self.test_config.test_login.test_title, get_practitest_id_from_config_test_id_field(
self.test_config.test_login.practitest_instance_id,
self.consts.web_driver_helper
)
)
log_debug(self._get_name(), self.consts.test_config.global_level.starting_log
.format(self.current_test_reporter.test_name))
self.biomarker_actions.navigate_to_biomarker_portal()
self.biomarker_actions.log_in_from_login_page()
studies_list = self.biomarker_actions.studies_page.get_study_cards()
页面html:
<div _ngcontent-c7="" class="study-card">
<a _ngcontent-c7="" href="/studies/BP39295">
<div _ngcontent-c7="" class="card">
<div _ngcontent-c7="" class="card-image">
<img _ngcontent-c7="" src="data:image/png;base64,i" style="background-color: rgb(192, 202, 51);">
<!----><div _ngcontent-c7="" class="edit-study-layer">
<button _ngcontent-c7="" class="material-icons x-small">edit</button>
</div>
<!----><div _ngcontent-c7="" class="del-study-layer">
<button _ngcontent-c7="" class="material-icons x-small" tooltip="">delete</button>
</div>
</div>
<div _ngcontent-c7="" class="card-content">
<p _ngcontent-c7="" class="card-title" data-tooltip="SMART_PD_HV">
SMART_PD_HV
</p>
<dl _ngcontent-c7="" class="details">
<dt _ngcontent-c7="">Sites</dt>
<dd _ngcontent-c7="">0</dd>
<dt _ngcontent-c7="">Subjects</dt>
<dd _ngcontent-c7="">0</dd>
<dt _ngcontent-c7="">Last updated</dt>
<!---->
<!----><dd _ngcontent-c7="">-</dd>
</dl>
</div>
</div>
</a>
</div>
收到错误: selenium.common.exceptions.WebDriverException:消息:
我希望有一个类名为 study-card 的上述网络元素列表 这在 chrome、firefox 和 edge 上运行良好, 调试时,我在调用查找元素之前和之后放置了一个断点,但它永远不会到达调用查找元素之后的断点。 只是去下一个测试然后我看到上面的错误没有消息 我跟随了对 Webdriver 的调用
def execute(self, driver_command, params=None):
它在这里得到错误
response = self.command_executor.execute(driver_command, params)
响应是 500 未知错误
【问题讨论】:
-
您能否发布您的测试、网页和错误/预期结果的代码?
-
添加html代码或网站链接
-
已更新代码
标签: python selenium safari webdriver